【问题标题】:Merge three github branches locally在本地合并三个github分支
【发布时间】:2015-01-08 12:45:46
【问题描述】:

目前我有一个场景,我想在本地将两个分支合并到第三个分支。场景就是这样。仅供参考,我是 github 的菜鸟。

  1. 大师 --> Epic_1
  2. 大师 --> Epic_2

现在我想先将 Epic_1 分支合并到 Master,然后在合并的 Epic_1 和 Master 之上将 Epic_2 分支合并到 master。我不确定要搜索什么才能得到正确的答案,所以添加这个问题。 重要 - 我希望所有这些都只在本地完成,不应该去远程分支。

谢谢, 雷

【问题讨论】:

    标签: git github merge git-merge git-bash


    【解决方案1】:
    git checkout master   # go to master since that’s your target branch
    git merge Epic_1      # merge in the first branch
    git merge Epic_2      # merge in the second branch
    

    这将为您提供大致如下所示的结果:

                (old) master      master (after merges)
                        ↓           ↓
    * -- * -- * -- * -- * -- M1 -- M2
                           /      /
    * -- * -- * -- * -- * -      /
                        ↑       /
                      Epic_1   /
                              /
    * -- * -- * -- * -- * -- *
                             ↑
                           Epic_2
    

    与 Git 中的所有内容一样,这仅在本地发生,因此您的任何遥控器上都不会受到影响。当然,你也可以推送 master 分支在你的遥控器上更新它。

    【讨论】:

    • 什么命令为您提供了如此漂亮的图形视图?渴望知道
    • 我实际上是手工完成的……xD
    • 酷!你使用 Git 多久了?从你的画我确实明白了。 :)
    • 已经多年了;不完全是我开始使用它的时间。但是我花了很多时间来了解它的内部结构(我在 uni 做过一次演讲),所以这也可能是“错误的”;)但我很高兴你从图纸中理解了它——这就是我想要的做:)
    • @poke,感谢您提供详细信息。我做了同样的事情。我想知道的另一件事是我可以将此分支保存为本地计算机中的新分支名称吗?这样我就可以继续检查其他分支并且仍然在本地,只要我需要,我就会在我的机器上拥有这个分支。再次感谢
    【解决方案2】:

    你只是

    git fetch # in case these branches are from the remote and to be up-to-date
    
    git checkout master
    
    git merge branch_1
    
    git merge branch_2
    

    你现在可以做

    git status
    

    git log
    

    查看master的状态。它将是本地的,除非/直到您明确将 master 推送到远程(在您的情况下可能是 origin)。

    如果有合并提交,您需要解决它们,但您会收到一条适当的消息,表明这一点,这将是一个单独的问题。

    还有很多关于合并和变基以及快速转发等相关主题的选项,但这超出了本问题的范围。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-10-15
      • 1970-01-01
      • 2016-11-07
      • 2015-06-26
      • 1970-01-01
      • 2014-09-23
      • 2011-10-30
      相关资源
      最近更新 更多