【发布时间】: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