强制git在rebase期间进行no-op提交

时间:2012-09-26 20:35:43

标签: git

所以我已经跳过了很多箍,让我的团队中担心版本控制和命令行的开发人员熟悉fork / rebase / pull-request git工作流程。

在我们的开发维基中添加一个rebase文章,我刚刚说到了#34;做git rebase。如果存在任何合并冲突,请修复它们。然后做一个git add。然后执行git rebase --continue。"

但是在通过示例并截取屏幕截图时,我被提醒说如果发生合并冲突,并且我将其解决为上游分支,那么git rebase --continue实际上拒绝继续并给出错误:

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: conflicts keep blocking progress

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

我认为这是一个很好的设计理由,为什么会发生这种情况(可能与使用正常提交机制的rebase有关,这种行为可能有意义)但在这种情况下它会让人感到困惑和不直观,并使得冲突逻辑:"解决冲突。如果您的修补程序与上游分支完全相同,请执行git rebase --skip。在所有其他情况下,请执行git rebase --continue。"

有没有办法压制这种行为,要么使用rebase标志,要么使用版本控制的配置文件(因此我不必在每台开发人员的计算机上进行设置或提供说明这样做)?

1 个答案:

答案 0 :(得分:2)

当前documentation of git-rebase提及--keep-empty选项:

  

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

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