我无法弄清楚如何在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中执行此操作?还是有另一种更合适的解决方案吗?
(我知道重新定义公开可见的工作的问题,这些不是这个项目的问题)。
答案 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
会将更改压缩到最后一次提交(现在是f70f90f
和514ee77
的压缩
你就定了。
之后
git rebase --continue
将带您进入rebase的下一步。