在进行交互式rebase时如何在压缩后进行编辑?

时间:2013-11-21 19:15:55

标签: git git-rebase

我无法弄清楚如何在rebase期间访问压缩提交的结果。我希望能够在2个提交被压缩到前一个提交后编辑提交。我的rebase文件如下所示:

p f70f90f ... some message ...
s 514ee77 ... some message ...
s ab01b05 ... some message ...
                                <-- want to edit 3 commits here!
p b109cc1 ... some message ...

我已经尝试过了:

e f70f90f ... some message ...
s 514ee77 ... some message ...
s ab01b05 ... some message ...
p b109cc1 ... some message ...

但是这可以让我编辑第一个提交,然后压缩下两个提交。

p f70f90f ... some message ...
s 514ee77 ... some message ...
s ab01b05 ... some message ...
p b109cc1 ... some message ...

但是我直接进入我的文本编辑器来编辑最后3次提交的提交消息,而没有给我机会编辑提交本身。

我相信我可以使用两个rebase解决这个问题:1)我压缩,2)我编辑。但是分支有足够数量的后续提交,这些提交需要花费很长时间。

如何在单个rebase中执行此操作?还是有另一种更合适的解决方案吗?

(我知道重新定义公开可见的工作的问题,这些不是这个项目的问题)。

1 个答案:

答案 0 :(得分:2)

你可以在第三次提交时停止编辑

p f70f90f ... some message ...
s 514ee77 ... some message ...
e ab01b05 ... some message ...
p b109cc1 ... some message ...

这样你就可以在ab01b05停下来进行编辑了。所以,如果你

git reset --soft HEAD^

然后您可以进行更改。然后

git commit --amend

会将更改压缩到最后一次提交(现在是f70f90f514ee77的压缩

你就定了。

之后

git rebase --continue

将带您进入rebase的下一步。