以下情况是我在使用 Git 时偶尔遇到的情况。一开始有一个线性历史,有两个分支。主分支当前指向 C。分支 A 是我要求同事合并到主分支的分支,而分支 B 则有未完成的工作,我还没有公开它。
下一步是将未完成的工作变基。我希望最终结果看起来像这样:
然而默认情况下,Git 假设 A 和 A' 是完全不相关的提交,并尝试执行如下操作:
这最终引出了我的问题:
有没有一种方法可以让git自行判断我们不需要在rebase中包含A,因为A'已经在那里了?或者这是总是需要人工干预以删除重复提交的情况之一?
C
\
A - B
在代码审查期间,我的同事注意到分支A的最后一次提交中有一个错字。为了不必创建一个新的提交来修复这个问题,我修改了有问题的提交,然后将其合并到主分支上。现在主分支指向A',也就是纠正了错字的提交。
C - A'
\
A - B
下一步是将未完成的工作变基。我希望最终结果看起来像这样:
C - A'
\
B
然而默认情况下,Git 假设 A 和 A' 是完全不相关的提交,并尝试执行如下操作:
C - A'
\
A - B
这最终引出了我的问题:
有没有一种方法可以让git自行判断我们不需要在rebase中包含A,因为A'已经在那里了?或者这是总是需要人工干预以删除重复提交的情况之一?