IntelliJ - 如何仅压缩本地分支

19
当在IntelliJ中使用Git时,我如何为本地分支压缩所有提交?在rebase分支窗口中使用什么设置?
我尝试将Onto设置为local/master,将From设置为我的分支,但然后它会尝试将每个提交的master更改合并到我的分支中,即使我通常每天都将我的分支rebase到master...所以不应该有冲突。然而,它几乎总是发现冲突并导致合并问题。我只想压缩分支提交和消息,这样当我推送到GitHub时,它只会看到一个提交。

enter image description here


1
@NikZ 我发现这个回答非常有帮助,可以在推送之前本地压缩将一组本地提交合并为单个推送 - Tom Malinowski
2个回答

33

这可能有点不舒服,但你可以使用git表示的HEAD~。在"Onto"字段中,您需要写入要包含的提交数量,例如:

在此示例中,我要将最近的4个提交合并为1个。

rebase interactive dialogue

在打开的对话框中,条目按顺序列出,因此您需要使用下拉框将第一个条目之后的所有条目压缩成一个(我将第一个条目设置为“更改消息”,但实际上不需要这样做,因为压缩后会有一个消息更改对话框,所以它可以留在“选取”状态)

squashing

然后只需为组合的提交撰写新消息即可完成。

commit message


1
如果你想要像“git merge -squash”这样的东西,它表示将一个分支与另一个分支(可能是“主”分支)合并为一个包含所有更改的提交,则可以在IntelliJ中使用“合并更改...”选项。只需双击shift键并输入“Merge Changes”。在打开的对话框中,选择要合并的分支,然后选择“Squash commit”选项。

enter image description here


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接