Git rebase提交选择

5
我有一个Git树,看起来像这样:
因为我们使用的审查工具是挑选更改而不是合并它们,所以会留下一些逻辑重复,我会删除那些分支。例如,下面的ssl_tests中的更改“Modification:Changing name…”也可以在dev中看到。
现在,也许这是我对cherry pick的理解不足,但是那些提交具有不同的哈希值,因此它们是不同的提交,即使它们在逻辑上相同。
然而,当我去将ssl_tests重新基于dev,Git设法弄清楚那些挑选的提交是上游提交,然后只从ssl_tests中重新基于“New Feature: Unit tests…”提交。
像往常一样,对于Git来说,这很好!这正是我想要的!我的问题是,如果这些提交具有不同的哈希值,Git是如何确定它不需要重新基于其他提交的?
谢谢! Stephen

有关Git合并魔法的好文章是如何以及/或者为什么在Git中进行合并比在SVN中更好? - CharlesB
1个回答

5

Git 在这里并不仅仅看 SHA1。实际上,它考虑的是提交内容。它看到应用提交和不应用提交所产生的树是相同的;也就是说,如果将提交应用到新的基础上,提交将是空的。因此,rebase 足够聪明,知道无需包含这些提交。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接