Immaginiamo di avere un master
ramo.
Quindi creiamo un newbranch
git checkout -b newbranch
ed effettua due nuovi commit newbranch
: commit1 e commit2
Quindi passiamo a master e make cherry-pick
git checkout master
git cherry-pick hash_of_commit1
Esaminando gitk
, vediamo che commit1 e la sua versione selezionata ciliegia hanno hash diversi, quindi tecnicamente sono due commit diversi.
Infine ci uniamo newbranch
in master
:
git merge newbranch
e vedere che questi due commit con hash diversi sono stati uniti senza problemi sebbene implicino che le stesse modifiche dovrebbero essere applicate due volte, quindi uno di loro dovrebbe fallire.
Git esegue davvero un'analisi intelligente del contenuto di commit durante l'unione e decide che le modifiche non devono essere applicate due volte o che questi commit sono contrassegnati internamente come collegati tra loro?