更新针对master的过时分支

时间:2014-01-06 16:45:58

标签: git github

我正在开发一个新分支的新功能,同时主人已经改变了。

我想更新我的分支以反映对master的更改,具有以下约束:

  1. 我已经推出了功能分支,因此我不想使用rebase,以防其他任何可能正在查看它的人出现问题。
  2. 我不想将任何功能更改添加到master中,只能添加到我的本地分支。
  3. 有很多答案表明,在这种情况下,人们应该使用rebase,但我很担心这样做,以防它为已经撤离分支的任何人带来问题。

    我可以这样做吗?

    git checkout mybranch
    git merge origin/master
    git push origin mybranch
    

3 个答案:

答案 0 :(得分:1)

您关于重新设置基准的危险的推论是正确的:如果有人拉了您的分支,那么他可能确实会遇到麻烦,因为重新确定基准会重写一些git历史记录。合并总是安全的。

您的序列是完全正确的,并且在处理要素分支时非常典型。在将功能分支合并到母版之前,应不时地将母版合并到功能分支中,以免它与母版之间的偏离不会太大。当最终合并到master分支中时(当功能就绪时),较大的偏差可能导致许多合并冲突。 通过定期将master分支合并到feature分支中,可以更早地解决(可能)冲突,冲突较小,更易于理解。

在处理过程中,必须在第(2)行中解决冲突(如果有)

您曾说过希望功​​能仅在本地更改。但是,当您按下/推动功能分支时,功能更改也出现在远程服务器上(在远程分支上,而不是在主服务器上)

答案 1 :(得分:0)

如果您已将分支机构推到其他位置,则不应该将其重新绑定,因此合并是合适的。你最后的命令序列很好。

答案 2 :(得分:0)

是的,你可以。此外,这是更新分支并在历史记录中跟踪该事件的方式(因为它进行合并提交)。 并且,正如你所说,如果你已经推动了你的分支,那么rebase可能会导致问题(任何人都无法做出正常推动,他们将需要强制推动,甚至是你)