2015-11-18 13 views
5

Ho una situazione simile a questa question. Attualmente questo comando mi mostra perfettamente tutti i commit ho bisogno:Creare una patch con ogni commit nell'output del registro

git log --cherry-pick --oneline --no-merges --left-only branchB...branchA 

Ora, voglio creare un file di patch con ognuno dei commit visualizzati nel comando precedente. Come posso farlo?

risposta

2

Prova questo. Spero non sia troppo tardi.

NUM=1 
for commit in $(git log --cherry-pick --no-merges --left-only branchB...branchA --reverse --pretty=tformat:"%H") 
do 
    git format-patch -1 $commit --start-number $NUM 
    ((NUM++)) 
done 

--reverse forze git-log per spingere i risultati in ordine inverso - dai primi uno a quello più recente, "%H" è formato contiene solo commettere hash SHA1. Gli hash vengono forniti come un singolo (-1) a cui viene assegnata la patch. --start-number con valore incrementale provoca la creazione di file di patch nell'ordine corretto.

+0

Ho avuto lo stesso problema durante la migrazione a un altro repository e file di commit creati correttamente. Sfortunatamente, non ero in grado di applicarli. – mazharenko

Problemi correlati