Nuestro flujo de trabajo de desarrollo git es que las ramas de temas se actualizan continuamente en el último máster hasta que se fusionen.Modificar el historial de una rama de tema git que usó fusiones para usar rebases
Sin embargo, un nuevo desarrollador ha creado ramas temáticas en las que ha realizado varias fusiones maestras en sus ramas temáticas para mantenerlas actualizadas.
A---B---C---D---E topic
/ //
F---G---H---I master
Si bien la fusión de esta rama de tema a principal sería perfectamente correcta, da como resultado una historia muy desordenada. Quiero convertir estas ramas puntuales en una historia porcentualizada lineal limpio, que se pueden combinar limpiamente en la principal con un solo --no-ff
fusión cometer es decir:
A'---B'---E' topic
/
F---G---H---I master
Idealmente, habría algún git-fu que permitiría que haga la rebase, tomando las confirmaciones en la rama temática tal como está, mientras se aplica automáticamente la información de resolución de conflictos de fusión ya disponible en el tema consolidaciones de fusión como C y D.
Sé que puedo simplemente aplicar el parche de "git diff master..topic "y luego use rebase para trabajar hacia atrás y dividir manualmente el único parche en commits individuales, pero ¿hay un enfoque más simple y más elegante?
He intentado directamente git rebase
y git rebase -p
comandos sin suerte.
Hmm, ¿estás seguro de que es realmente lo que querías? S, V y X en su gráfica parecen ser uniones de fusión, por lo que no deberían estar presentes como S ', V' y X 'en el estado deseado. A menos que contuvieran un montón de resolución manual de conflictos, supongo. – Raman