git rebase并用一条消息压缩提交

时间:2018-11-19 12:51:22

标签: git

当我们通过git rebase解决一些git冲突并通过简单消息(例如"resolve conflicts")重新建立 squash 时,是否有可能?
这是我解决特定冲突后的提交历史记录: enter image description here

如您所见,最后3次提交分别代表git rebasegit push -f。我认为,只给一条消息设置一次提交而不是3条(当前分支上的提交数量)提交更合乎逻辑

1 个答案:

答案 0 :(得分:1)

我建议进行交互式变基,选择要提交的内容以及要压榨的内容,并以squash为前缀,而不是选择。

例如,在您的情况下,它看起来像这样(数字是您希望重新设置HEAD之后的提交次数):

git rebase -i HEAD~3

然后您将得到一个提示,其中包含提交及其消息,看起来像这样:

pick <HASHID> Initial Commit 
pick <HASHID> Login via mail instead of username
pick <HASHID> Add missing files

只需将选择权更改为壁球(并保留一个作为选择权提交)。

然后您将能够重写该提交消息,并且您将拥有1次提交,如果需要,可以执行git push -f。