我正在开发一个新分支的新功能,同时主人已经改变了。
我想更新我的分支以反映对master的更改,具有以下约束:
有很多答案表明,在这种情况下,人们应该使用rebase,但我很担心这样做,以防它为已经撤离分支的任何人带来问题。
我可以这样做吗?
git checkout mybranch
git merge origin/master
git push origin mybranch
答案 0 :(得分:1)
您关于重新设置基准的危险的推论是正确的:如果有人拉了您的分支,那么他可能确实会遇到麻烦,因为重新确定基准会重写一些git历史记录。合并总是安全的。
您的序列是完全正确的,并且在处理要素分支时非常典型。在将功能分支合并到母版之前,应不时地将母版合并到功能分支中,以免它与母版之间的偏离不会太大。当最终合并到master分支中时(当功能就绪时),较大的偏差可能导致许多合并冲突。 通过定期将master分支合并到feature分支中,可以更早地解决(可能)冲突,冲突较小,更易于理解。
在处理过程中,必须在第(2)行中解决冲突(如果有)
您曾说过希望功能仅在本地更改。但是,当您按下/推动功能分支时,功能更改也出现在远程服务器上(在远程分支上,而不是在主服务器上)
答案 1 :(得分:0)
如果您已将分支机构推到其他位置,则不应该将其重新绑定,因此合并是合适的。你最后的命令序列很好。
答案 2 :(得分:0)
是的,你可以。此外,这是更新分支并在历史记录中跟踪该事件的方式(因为它进行合并提交)。 并且,正如你所说,如果你已经推动了你的分支,那么rebase可能会导致问题(任何人都无法做出正常推动,他们将需要强制推动,甚至是你)