7

因此,为了让我的团队中害怕版本控制和命令行的开发人员能够接受 fork/rebase/pull-request git 工作流程,我跳过了很多障碍。

在向我们的开发 wiki 添加 rebase 文章时,我只是说到“做git rebase。如果有任何合并冲突,修复它们。然后做一个git add。然后做git rebase --continue。”

但是在完成示例并截取屏幕截图时,我被提醒如果存在合并冲突,并且我解决它以支持上游分支,git rebase --continue实际上执行 a 拒绝继续并给出错误:

No changes - did you forget to use 'git add'?
If there is nothing left to stage, chances are that something else
already introduced the same changes; you might want to skip this patch.

此处对技术细节进行了精彩的讨论:Git rebase:冲突不断阻碍进度

但我想要的是让这种行为停止

我认为发生这种情况有一个很好的设计原因(可能与仅使用正常提交机制的 rebase 相关,这种行为可能是有意义的)但在这种情况下,它令人困惑且不直观,并使冲突逻辑:“修复冲突。如果你修复看起来与上游分支完全一样,执行 a git rebase --skip。在所有其他情况下,执行 a git rebase --continue。”

有没有办法抑制这种行为,无论是使用重新设置标志还是在版本控制的配置文件中(所以我不必在每个开发人员的计算机上设置它或提供这样做的说明)?

4

1 回答 1

2

当前的文档git-rebase提到了一个--keep-empty选项:

--keep-empty
     在结果中保留不改变其父项的任何内容的提交。

不幸的是,没有将此设置放入配置文件中。

于 2014-06-02T09:59:28.390 回答