我可以将多个提交压缩在一起,并保留上一次提交的消息吗?

有时候我git rebase -i master遇到这种情况:

pick cc1ed9d First commit
pick 9d4090c Main commit with detailed message
pick fca9df4 WIP afterthought commit with bad message

通过将最后一行的pick更改为fixup,我将其压缩到主提交中,新的合并提交使用了主提交的好消息。

但是有时顺序是不同的:

pick cc1ed9d First commit
pick fca9df4 WIP preliminary commit with failing test
pick 9d4090c Main commit with detailed message

在这里,我想将最后两个提交压缩在一起,但保留最后一个的消息。

我可以通过费力的复制和粘贴来做到这一点,但是有简单的方法吗?

z6206519 回答:我可以将多个提交压缩在一起,并保留上一次提交的消息吗?

您可以稍作更改。如果将pick(又名p)更改为squashs)而不是fixupf),则Git将合并提交'的更改方式相同,但不会自动保留第一次提交的消息,而是会弹出您的文本编辑器。此处将提供一个建议的提交消息,该消息将所有连续压缩的提交的消息连接起来,您可以从中编辑任何要保留的内容。

为了公平起见,这不会100%自动仅保留最后一次提交的消息,但是可以避免提到的“费力的复制和粘贴”!

fixup视为squash,基本上不需要进行额外的编辑消息的步骤,因此,从fixup更改为squash,您可以获得完整的压缩体验(大声笑) )。

,

交互式rebase旨在提供很多选项,如果您已经完全知道要执行的操作,请执行以下操作:

git reset --soft @~2; git commit -C @{1}

带有一个干净的索引来将最后两个提交压缩在一起,从而保持提示提交的消息。

本文链接:https://www.f2er.com/3136398.html

大家都在问