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

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

Cette étape fait partie d'un workflow complexe qui est entièrement automatisé. Par conséquent, exiger que quelqu'un détermine manuellement le premier commit dans la branche n'est pas une option.

Notez que tout ce qui repose sur reflog n'est pas non plus une option car les modifications de la branche ne sont pas effectuées localement.

25
demandé sur akirekadu 2017-03-15 07:03:38

1 réponses

Si vous savez de quelle branche votre "branche donnée" a été créée, alors 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 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 akirekadu 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 branche "

26
répondu VonC 2017-05-23 12:09:27