2017-03-21 3 views
1

Hier, j'ai fusionné 1 demande de traction d'une branche faite par un autre développeur que je remplace pendant qu'il est en vacances Master, les changements de code dans cette branche a été révisé et testé soigneusement. Tout d'un coup, il a signalé tellement d'erreurs, sans aucun rapport avec les changements effectués dans cette branche qui a fusionné dans cette demande de tirage, donc nous avons supposé que c'était autre chose (récemment, nous avons eu des problèmes avec notre CI, parce que est un plan pour réorganiser l'IC).Fusionné une demande Pull fusionné plusieurs branches à la fois

Ce matin, j'ai été crié par deux développeurs différents demandant une explication sur pourquoi j'ai fusionné leurs branches quand elles ne sont pas terminées.

Je n'ai aucune idée de comment cela est possible. Dans une requête Pull, vous fusionnez différentes branches à celle qui a généré la demande Pull?

Quelqu'un peut-il expliquer si cela est possible, pourquoi et comment .....

+0

Sans plus d'informations, mon doigt serait pointer les membres de votre équipe qui se plaignent de votre fusion de leurs branches quand ils sont « Inachevé " À mon avis, si vous ouvrez une demande d'extraction à partir d'une succursale, il est temps que quelqu'un d'autre la fusionne. S'ils ont ouvert ces PR par erreur, alors c'est leur problème, pas le vôtre. Mais cela suppose qu'il y avait vraiment des relations publiques ouvertes, et que vous n'avez pas fusionné par erreur sans un PR. –

Répondre

3

Nous avons connu ce où un développeur a créé branch B basé sur branch A qui est encore à fusionner dans. Accepter la fusion de branch B accepte également branch A jusqu'à la validation que branch B a été créée.

La demande de traction aura inclus tous les changements de branch B mais pas nécessairement tous les changements de branch A. Cela peut introduire des changements brisés/incomplets.

J'espère que le ci-dessous aide à expliquer ce que je veux dire:

* 
|\ 
| \ 
| \ 
| \ 
| \ 
|  * commit to branch A 
|  | 
|  * commit to branch A 
| /| 
| /| 
| * | commit to branch B 
| | | 
| | * commit to branch A 
| | 
| * commit to branch B 
|/ 
|/  
* merge branch B in to master (first two commits from branch A are included) 
+0

Oui, il pourrait être une raison possible pour laquelle cela se produit. Est-ce que Git ne devrait pas éviter cela? – GTuritto

+0

Git fait la bonne chose ici. Le développeur de 'branche B' a créé leur branche à partir du mauvais commit, ou peut-être qu'ils avaient l'intention de le faire car leurs changements dépendaient de ce commit dans la' branche A'? – anierzad

+0

Nous avons dû annuler le PR. Quand le développeur arrivera de vacances, je lui demanderai ce qu'il a fait et il ne m'a pas fait savoir. Cela doit être une raison pour ce qu'il a fait. Merci @anierzad pour votre réponse. – GTuritto