2013-06-12 15 views
21

Voglio fare qualcosa di simile a git rebase ma senza comprimere i commit paralleli.git applica le modifiche da un commit su un altro ramo

Diciamo che ho i seguenti commit:

B (bar) 
/
A-C-D (foo) 

Ora voglio prendere i cambiamenti che D introdotte per C nel ramo foo, e applicarle a B in bar ramo. in modo che io alla fine con il seguente:

B-E (bar) 
/
A-C-D (foo) 

Qualora la differenza tra impegna B ed E è pari alla differenza tra impegna C e D. è possibile? C'è un modo per farlo senza creare una patch?

risposta

32

Sì:

git checkout -b mergebranch B 
git cherry-pick D 
0

Se l'ultimo commit sul ramo che si desidera cherry-pick di (foo nell'esempio) è una fusione commit, si può puntare alla specifica impegnano a scelta ciliegia utilizzando git cherry-pick branchname~1 per ottenere il commit che era il genitore dell'unione.

Problemi correlati