将许多提交合并到同一分支下的单个提交中

时间:2013-02-20 14:54:23

标签: github git-rebase git-commit

使用git,我创建了一个本地分支来工作。然后我逐步提交我的工作。所以,我在同一个pull请求中得到3个提交,我想将它们合并为一个。

我发现,如果我们按照以下步骤操作,就有办法:

  • git rebase -i HEAD~3

=>分支中的所有提交都列在下面

pick mycommit1
pick mycommit2
pick mycommit3
  • 要将它们合并到第一个,我必须将mycommit2和mycommit3的命令设置为squash而不是pick

但是,在我的情况下,我在主分支的提交之间有很多提交,因此,我不能这样做。

因此,我会问我是否可以在拉取请求中进行合并 JUST

欢迎您的想法。

由于

1 个答案:

答案 0 :(得分:0)

您可以在变基时使用fixup命令。此命令与squash执行相同的操作,但保留第一次提交的消息。例如:

pick 123abcd
pick abc1234
pick a1b2c34

您可以将其更改为:

pick 123abcd
f abc1234
f a1b2c34

现在,您将这3个提交加入到一个提交中,该提交将获得第一条消息。如果您想编辑一次消息,可以这样做:

pick 123abcd
f abc1234
s a1b2c34

这意味着这3个提交将加入到一个提交中,您可以编辑该提交。


额外提示:为了更容易将每个pick更改为命令,您只需使用Vims块选择功能选择所有“选择”并将其更改为您想要的命令。