【问题标题】:Publish local branch on remote but not merge it into the remote branch it tracks在远程发布本地分支,但不将其合并到它跟踪的远程分支
【发布时间】:2014-02-18 21:08:29
【问题描述】:

我经历了巨大的重构工作,并希望将我的本地 git 分支(称为 local_b)推送到临时远程分支中,我的 CM 可以将其部署在专用环境中以供 QA 测试。但是,在完成一些测试之前,由于所涉及的风险,我宁愿不将其合并到我的本地分支跟踪的最终目标远程分支(称为official_b)中,即我从中获取其他开发人员的更改。

我可以:

  1. local_b 提升到远程(调用那个新的远程分支test_b

  2. 保持本地分支跟踪official_b,以便与来自其他开发人员的传入合并更改同步

  3. local_b 中的所有更改(official_b 的合并更改 + 我的本地更改)推送到 test_b

同时使用一些 git 噱头?

【问题讨论】:

    标签: git git-branch branching-and-merging


    【解决方案1】:

    如果我没有理解错,你想推送你的local_b 分支并使用official_b 中所做的更改来更新它。

    将本地分支推送到远程:

    git push origin local_b:test_b
    

    对于更新你的分支:

    git checkout local_b
    git rebase official_b
    # ... Fix possible conflicts
    git push origin local_b:test_b 
    

    【讨论】:

    • 同时跟踪local_bofficial_b 并将local_b 发布到test_b
    • @amphibient 分支local_bofficial_b 是不同的。你不能跟踪它,但是如果你想让local_b 有它的变化,从官方分支更新到你的local_b 有什么问题?
    • 是的,local_b = official_b + my changes。我想你是对的,我可以从official_b 获取到local_b,但是从local_b 推送到test_b
    【解决方案2】:

    我不明白为什么不这样做:

    # Promote local_b to the remote (call that new remote branch test_b)
    git push origin local_b:test_b
    
    # Push all changes from local_b (official_b + my local changes) into test_b
    git push origin local_b:test_b  # so yes, same command as earlier...
    

    【讨论】:

      猜你喜欢
      • 2013-04-30
      • 1970-01-01
      • 2018-12-20
      • 1970-01-01
      • 2016-02-22
      • 2016-09-12
      • 2011-07-27
      • 2018-02-12
      • 2010-09-27
      相关资源
      最近更新 更多