【问题标题】:"git rebase --interactive" is silently dropping commits while attempting to reorder them“git rebase --interactive”在尝试重新排序时默默地放弃提交
【发布时间】:2014-12-23 20:26:38
【问题描述】:

我注意到我在运行 git rebase --interactive 时默默地丢失了提交,因此我在一个简单的 repo 中重新创建了该问题以进行测试。

我有四个提交,我想重新排序其中两个。这是我的开始提交:

55d4ca6 1  <-- origin/master  
d70d325 2  
b613c5b 3  
2bd1177 4  <-- master

每个提交都独立于其他提交;他们都操作不同的文件。我想重新排序提交以切换提交 2 和 3。我将使用 git rebase --interactive origin/master 来执行此操作。正如预期的那样,运行该命令会按此顺序在 vim 窗口中提供我的提交:

pick d70d325 2  
pick b613c5b 3  
pick 2bd1177 4

我将交换提交 2 和 3,所以我在 vim 中重新排序:

pick b613c5b 3  
pick d70d325 2  
pick 2bd1177 4

我希望这两个提交可以交换,如下所示:

55d4ca6 1
bf330a8 3  
5c6f9af 2  
7cb8db1 4

在实践中,我的一个提交已经消失了,我的仓库只剩下这个:

55d4ca6 1  
7de7fb0 3  
10fc3a7 4

我是否错误地使用了rebase --interactive?还是这是 Git 中的错误?

我使用的是最新的 Window Git 版本 (1.9.5.msysgit.0)。在过去的几个月里,我在多个 Git 版本中定期注意到这一点。

编辑 1:用文本替换 vim 和 gitk 图像。如果您想确切了解我所看到的内容,请查看原始问题修订版。

【问题讨论】:

  • rebase 命令的输出是什么? git reflog 的输出是什么?
  • 在尝试阅读 vim 会话中的配色方案后,我的眼睛受伤了...
  • 不开玩笑@twalberg。对于文字的东西,请复制并粘贴到这里,并适当地格式化。有些人已经有视觉问题,一张照片可能值 1k 字,除非你看不到它们来破译它们。照片可能一文不值。
  • 请发布一个最小的、可重现的示例,而不是那些令人头疼的屏幕截图。

标签: git git-rebase msysgit


【解决方案1】:

由于快捷方式,我实际运行的命令是git rebase --interactive --preserve-merges origin/mastergit rebase documentation 的 BUGS 部分列出了一起使用这些命令并尝试重新排序提交。

BUGS 部分的问题与我在上面试图描述的问题完全相同,并且可能更好地解释了正在发生的事情。

答案:在尝试使用rebase --interactive --preserve-merges 重新排序时,您将放弃提交。不要同时使用这两者。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-11-17
    • 2019-02-18
    • 2015-03-03
    • 2012-06-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多