假设我们有一个master分支。
然后我们创建一个 newbranch
git checkout -b newbranch
并向以下两个新提交newbranch:commit1和commit2
然后我们切换到主人 cherry-pick
git checkout master
git cherry-pick hash_of_commit1
调查gitk我们发现,commit1及其精选版本具有不同的哈希值,因此从技术上讲,它们是两个不同的提交。
最后,我们合并newbranch为master:
git merge newbranch
并看到这两个具有不同哈希值的提交没有问题地合并在一起,尽管它们暗示应该将相同的更改应用两次,所以其中之一应该失败。
git真的在合并时对提交内容进行了智能分析,并决定不应两次应用更改,或者这些提交在内部被标记为链接在一起吗?