【发布时间】:2020-07-06 01:38:38
【问题描述】:
以下情况是我在使用 Git 时偶尔会发生的情况。我从线性历史开始,有两个分支。 master目前指向C。分支A是我要求同事合并到master的分支,分支B有未完成的工作我还没有公开。
C
\
A - B
在代码审查期间,我的同事注意到分支 A 中的最后一次提交中有一个错字。我没有创建一个新的提交来修复错字,而是修改了有问题的提交并将其合并到 master 中。 Master 现在指向 A',这是更正错字的提交。
C - A'
\
A - B
下一步是对未完成的工作进行rebase。我希望最终结果如下所示:
C - A'
\
B
但是,默认情况下,Git 假定 A 和 A' 是完全不相关的提交,它会尝试这样做:
C - A'
\
A - B
这最终让我们想到了我的问题:
有没有办法让 git 自己弄清楚我们不需要在 rebase 中包含 A,因为 A' 已经存在?或者这是总是需要人工干预才能删除重复提交的情况之一?
【问题讨论】: