Git Copia di un commit da un ramo all'altro


Esempio

git cherry-pick <commit-hash> applicherà le modifiche apportate in un commit esistente a un altro ramo, mentre registra un nuovo commit. In sostanza, puoi copiare i commit da un ramo all'altro.

Dato il seguente albero (fonte)

dd2e86 - 946992 - 9143a9 - a6fd86 - 5a6057 [master]
           \
            76cada - 62ecb3 - b886a0 [feature]

Diciamo che vogliamo copiare b886a0 su master (sopra a 5a6057 ).

Possiamo correre

git checkout master
git cherry-pick b886a0

Ora il nostro albero assomiglierà a qualcosa:

dd2e86 - 946992 - 9143a9 - a6fd86 - 5a6057 - a66b23 [master]
           \
            76cada - 62ecb3 - b886a0 [feature]

Dove il nuovo commit a66b23 ha lo stesso contenuto (diff source, messaggio di commit) come b886a0 (ma un genitore diverso). Nota che il cherry-picking rileverà solo le modifiche su quel commit ( b886a0 in questo caso) non tutte le modifiche nel ramo della funzione (per questo dovrai usare rebasing o merging).