我有一个如下所示的 git 树:
由于我们使用审查工具,我们会挑选更改而不是 merge 它们。这给我们留下了一些逻辑上的重复项,然后我就删除了它们的分支。比如ssl_tests下面的change一个“Modification: Changing name...”在dev中也可以看到。
现在,也许这是我对 cherry pick 缺乏理解,但这些提交具有不同的哈希值,所以不同的提交对吗?尽管它们在逻辑上是相同的。
但是,当我将 ssl_tests rebase 到 dev 时,git 设法弄清楚那些精心挑选的提交是上游,然后仅 rebase 来自 ssl_tests 的“新功能:单元测试...”提交。
像往常一样,使用 git,这太棒了!这正是我想要的!不过,我的问题是,如果其他提交具有不同的哈希值,那么 git 是如何确定它不需要 rebase 的?
谢谢! 斯蒂芬
最佳答案
Git 在这里关注的不仅仅是 SHA1。它实际上是在考虑提交的内容。它看到应用提交和不应用提交产生的树是相同的;也就是说,如果应用于新基础,提交将为空。因此,rebase 足够聪明,知道它不需要费心包含这些提交。
关于Git rebase 提交选择,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8255078/