Git rebase 交互式删除与删除提交行

Git 交互式 rebase 中的 drop和只删除提交行的 drop有什么区别?

27147 次浏览

将提交标记为 drop与删除该行相同。

提交将被删除/忽略。

看你什么时候向下滚动:

如果删除这里的一行,则提交将丢失。

2.6.0-rc1中添加了 drop 命令:

“ git rebase-i”学会了“ drop commit-object-name subject”命令 作为跳过重播提交的另一种方法。

默认情况下没有区别; 这只是说同样事情的另一种方式。

但是, 如果将 rebase.missingCommitsCheck设置为 warnerror,那么删除一行将触发警告(对于检测混乱的剪切和粘贴非常有用)。

然后将该行设置为 drop显式地告诉 Git 您想删除该提交,并且不会显示任何警告。

这里 实际上还有一个小小的区别:

您可以显式地“删除”所有提交。效果将与重置相同。

但是,如果您只是删除所有行,那么 git 将告诉您“无需做任何事情”。

在这种情况下,通常不会使用 rebase。只有当我试图向同事解释使用虚拟提交删除带有 rebase 的提交时,我才了解到这种差异。