Imaginons que nous ayons un master
branche.
Ensuite, nous créons un newbranch
git checkout -b newbranch
et faire deux nouveaux commits dans newbranch
: commettre1 y commettre2
Puis nous passons à master et faisons cherry-pick
git checkout master
git cherry-pick hash_of_commit1
Regarder dans gitk
nous voyons que commettre1 et sa version "cherry-picked" ont des hashs différents, donc techniquement ce sont deux commits différents.
Enfin, nous fusionnons newbranch
en master
:
git merge newbranch
et voir que ces deux commits avec des hachages différents ont été fusionnés sans problèmes bien qu'ils impliquent que les mêmes changements soient appliqués deux fois, donc l'un d'eux devrait échouer.
Est-ce que git fait vraiment une analyse intelligente du contenu des commits lors de la fusion et décide que les changements ne doivent pas être appliqués deux fois ou que ces commits sont marqués en interne comme liés entre eux ?