J'ai un ouvert de RP sur une branche appelée feature-b
qui sera bientôt fusionné pour main
. Cependant, je l'ai écrit à l'appui de ma feature-a
branche, qui est en cours. Je veux continuer à travailler sur feature-a
et de maximiser le travail que j'ai fait dans feature-b
avant il a été fusionné à main
.
Quelle est la meilleure façon pour moi de faire cela? Notre fusionne à main
sont éliminés, de sorte que tous les commits sur feature-b
va être réécrit comme un seul commit quand il est fusionné à main
. Par conséquent, la relocalisation feature-a
sur feature-b
aujourd'hui entraînera dans les conflits de l'avenir de la douleur quand j'ai fusion feature-a
pour main
parce que les mêmes modifications ont été faites dans les différents commits.
Quelle est la meilleure façon pour moi d'inclure les modifications apportées dans feature-b
dans mon feature-a
de la branche, tout en minimisant l'avenir de la douleur quand je l'ai finalement fusionner feature-a
pour main
?
Mise à JOUR
Je suis allé de l'avant et de:
- Relocalisée
feature-a
surfeature-b
- Fait plus de changements (1 seul commit) à
feature-a
tandis quefeature-b
est en cours de révision - Squash-fusionné
feature-b
une fois qu'il a été approuvé (pas de modification nécessaire, de manière àfeature-a
a déjà le code exact qui a été fusionné) - Tiré à plus tard
main
et relocaliséefeature-a
sur le dessus de cela
Comme on le craignait, git se plaint que plusieurs dossiers sont "à la fois modifié" ou "deux". Ce serait un peu ennuyeux, mais simple à corriger. Ce qui le rend incroyablement déroutant, surtout si aucun passage de temps a passé - est de la fusion des commentaires dans les fichiers.
Même si les deux main
et feature-a
les branches ont la même code exactement, dans tous les fichiers, j'obtiens super gênant comportement:
- Pour la "deux" de fichiers, de fusionner les commentaires sont ajoutés "à la TÊTE (Modification en cours)" et "parent de #HASH (message de commit)". Je suis obligé de choisir l'un ou l'autre, même si elles sont exactement les mêmes!
- Pour le "tous deux modifiés" les fichiers, c'est encore pire. La "TÊTE (Modification en cours)" montre le code est correct. Cependant, la "mère de #HASH (message de commit)" montre la moitié du code. Encore une fois, même si les deux branches ont tout le code!! Je ne plaisante pas, en acceptant les "entrants dans le changement" (comme indiqué sur l'étiquette par VS Code) va supprimer le code qui est dans les deux branches!
Si je n'avais pas fait ces changements, en succession rapide, je serais irrémédiablement perdus et confus au sujet de ce que git est en me montrant. Qui a d'ailleurs arrivé à plusieurs reprises dans le passé, mais je n'arrivais pas à mettre le doigt sur ce qui n'allait pas. Maintenant que j'ai reproduit ce et vérifié le comportement, je suis complètement déconcerté car à ce que git est en train de faire et la façon dont les gens traitent avec ce scénario.
Mise à JOUR 2
OK, j'ai un peu de voir pourquoi il allait supprimer le code maintenant. C'est parce que les changements que j'ai faits dans feature-b
ont été dans plusieurs commits, et ceux qui s'engage a fini par être écrasé lors de la fusion de main
eu lieu. C'est sans doute la source de la douleur et pourquoi je suis à essayer de comprendre un flux de travail plus sain.