2014-12-23 50 views
3

我注意到我在运行git rebase --interactive时已悄悄地失去了提交,所以我在一个简单的测试回购中重新创建了该问题。“git rebase --interactive”在尝试重新排序时悄悄放弃了提交

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

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图像。如果您想查看我所看到的具体内容,请查看原始问题修订。

+0

rebase命令的输出是什么? git reflog的输出是什么? – michas

+3

尝试阅读'vim'会话中的配色方案后,我的眼睛受伤... – twalberg

+2

没有开玩笑@twalberg。对于文本内容,请将它们复制并粘贴到此处,然后进行适当的格式化。有些人已经有视觉问题,一张照片可能值1k字,除非你看不到它们来破译它们。照片可能毫无价值。 – vgoff

回答

5

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

BUGS部分有一个问题,与我上面所描述的完全相同,可能会更好地解释发生了什么。

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