假设我们有一个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真的在合并时对提交内容进行了智能分析,并决定不应两次应用更改,或者这些提交在内部被标记为链接在一起吗?