web-dev-qa-db-fra.com

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 ce qui repose sur reflog n'est pas une option non plus, car les modifications dans la branche ne sont pas effectuées localement.

41
akirekadu

Si vous savez de quelle branche votre "branche donnée" a été créée, alors créer un patch est facile :

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

(et vous pouvez générer un correctif applicable sans git aussi )

Mais trouver le bon "commit de création" d'une branche peut être complexe: voir " Trouver un point de branche avec Git? "

Le OP akirekad utilisé:

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

Vous pouvez le voir utilisé dans " git diff entre la copie de travail et la base de la branche "

51
VonC