85 votes

Git - génère un patch pour tous les commits d'une branche

Comment puis-je générer un correctif pour tous les commits dans une branche donnée en ne connaissant que le nom de la branche?

Cette étape fait partie d'un flux de travail complexe, entièrement automatisé. Par conséquent, demander à quelqu'un de déterminer manuellement le premier commit de la branche n'est pas une option.

Notez que tout élément reposant sur reflog n'est pas une option non plus, car les modifications dans la branche ne sont pas effectuées localement.

120voto

VonC Points 414372

Si vous savez de qui direction de votre "compte tenu de la branche" a été créé, puis de faire un patch est facile:

git diff master Branch1 > ../patchfile
git checkout Branch2    
git apply ../patchfile

(et vous pouvez générer un patch applicable en l'absence de git trop)

Mais trouver la bonne création de "commettre" d'une branche peuvent être complexes: voir la section "Trouver un point de branchement avec Git?"

L' OP akirekadu utilisé:

git format-patch $(git merge-base --fork-point master)..branchB 

Vous pouvez voir qu'il est utilisé dans "git diff entre la copie de travail et de la direction générale de la base"

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X