Vamos imaginar que temos um master
ramo.
Então criamos um newbranch
git checkout -b newbranch
e faça dois novos commits para newbranch
: commit1 e commit2
Então nós mudamos para dominar e fazer cherry-pick
git checkout master
git cherry-pick hash_of_commit1
Examinando gitk
, vemos que o commit1 e sua versão escolhida com cereja têm hashes diferentes; portanto, tecnicamente, eles são dois commits diferentes.
Finalmente, nos fundimos newbranch
em master
:
git merge newbranch
e veja que esses dois commits com hashes diferentes foram mesclados sem problemas, embora impliquem que as mesmas alterações devam ser aplicadas duas vezes; portanto, um deles deve falhar.
O git realmente faz uma análise inteligente do conteúdo do commit durante a mesclagem e decide que as alterações não devem ser aplicadas duas vezes ou esses commit são marcados internamente como vinculados?