【问题标题】:Merge many commit into a single one under same branch将多个提交合并到同一分支下的单个提交中
【发布时间】:2013-02-20 14:54:22
【问题描述】:

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

我发现如果我们按照以下步骤进行操作,就有办法做到这一点:

  • git rebase -i HEAD~3

=> 分支中的所有提交如下所示

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

但是,就我而言,我在 master 分支中的提交之间有很多提交,因此,我不能这样做。

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

欢迎您的想法。

谢谢

【问题讨论】:

    标签: github git-rebase git-commit


    【解决方案1】:

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

    pick 123abcd
    pick abc1234
    pick a1b2c34
    

    您可以将其更改为:

    pick 123abcd
    f abc1234
    f a1b2c34
    

    现在您将这 3 个提交合并为一个提交,该提交将获得第一条消息。如果你想编辑一次消息,你可以这样做:

    pick 123abcd
    f abc1234
    s a1b2c34
    

    这意味着这 3 个提交将合并为一个提交,您可以编辑该提交。


    额外提示:为了更轻松地将每个pick 更改为命令,您可以简单地使用 Vims 块选择功能来选择所有 'pick' 并将其更改为您想要的命令。

    【讨论】:

      猜你喜欢
      • 2016-03-23
      • 2017-04-26
      • 2011-07-15
      • 2017-05-07
      • 2020-07-06
      • 2019-12-31
      • 2011-11-07
      • 1970-01-01
      相关资源
      最近更新 更多