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

Github 将多个提交合并到同一分支下的单个提交中,github,git-rebase,git-commit,Github,Git Rebase,Git Commit,使用git,我创建了一个本地分支。然后我逐步投入工作。所以,我在同一个请求中得到了3个commit,我想把它们合并成一个 我发现,如果我们遵循以下步骤,就有办法做到这一点: git-rebase-i头~3 =>分支中的所有提交如下所示 pick mycommit1 pick mycommit2 pick mycommit3 要将它们合并到第一个命令中,我必须将mycommit2和mycommit3的命令设置为squash,而不是pick 但是,在我的情况下,在主分支中我的提交之间有很多

使用git,我创建了一个本地分支。然后我逐步投入工作。所以,我在同一个请求中得到了3个commit,我想把它们合并成一个

我发现,如果我们遵循以下步骤,就有办法做到这一点:

  • git-rebase-i头~3
=>分支中的所有提交如下所示

pick mycommit1
pick mycommit2
pick mycommit3
  • 要将它们合并到第一个命令中,我必须将mycommit2和mycommit3的命令设置为
    squash
    ,而不是
    pick
但是,在我的情况下,在主分支中我的提交之间有很多提交,因此,我不能这样做

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

欢迎你的意见


谢谢

您可以在重定基址时使用
fixup
命令。此命令的作用与挤压相同,但保留第一次提交的消息。例如:

pick 123abcd
pick abc1234
pick a1b2c34
您可以将此更改为:

pick 123abcd
f abc1234
f a1b2c34
现在,将这3个提交合并为一个提交,该提交将获得第一条消息。如果要编辑邮件一次,可以按如下方式进行:

pick 123abcd
f abc1234
s a1b2c34
这意味着这3次提交将合并为一次提交,您可以编辑该提交


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