我有四个分支(master, b1, b2和b3)。我在b1-b3上工作后,我意识到我在分支主上有一些应该在所有其他分支中更改的东西。我改变了我在master中需要的东西…这是我的问题:
我如何用主分支代码更新所有其他分支?
我有四个分支(master, b1, b2和b3)。我在b1-b3上工作后,我意识到我在分支主上有一些应该在所有其他分支中更改的东西。我改变了我在master中需要的东西…这是我的问题:
我如何用主分支代码更新所有其他分支?
当前回答
用你的主分支副本更新其他分支,如(备份)。 你可以按照任何一种方式(rebase或merge)…
做rebase(不会有任何额外的提交到备份分支)。 合并分支(将有一个额外的自动提交到 备份分支)。 注:Rebase只是建立一个新的base(一个新的副本)
git 结帐备份 Git 合并大师 git push
(重复执行其他分支,如backup2等)
git 结帐备份 git 变基大师 git push
(重复执行其他分支,如backup2等)
其他回答
用你的主分支副本更新其他分支,如(备份)。 你可以按照任何一种方式(rebase或merge)…
做rebase(不会有任何额外的提交到备份分支)。 合并分支(将有一个额外的自动提交到 备份分支)。 注:Rebase只是建立一个新的base(一个新的副本)
git 结帐备份 Git 合并大师 git push
(重复执行其他分支,如backup2等)
git 结帐备份 git 变基大师 git push
(重复执行其他分支,如backup2等)
Git rebase master是正确的方法。合并意味着将为合并创建一个提交,而重基则不会。
您可以合并,也可以使用git的选择性跨分支应用单独的提交。
@cmaster给出了最好的详细回答。简而言之:
git checkout master #
git pull # update local master from remote master
git checkout <your_branch>
git merge master # solve merge conflicts if you have`
您不应该重写分支历史记录,而应该保持它们的实际状态以供将来引用。当合并到master时,它会创建一个额外的提交,但这很便宜。提交不需要成本。
如果你一直在一个分支上断断续续地工作,或者在你工作的时候其他分支发生了很多事情,最好将你的分支重新建立在master上。这样可以保持历史的整洁,使事情更容易理解。
git checkout master
git pull
git checkout local_branch_name
git rebase master
git push --force # force required if you've already pushed
注:
不要改变你与他人合作的分支。 您应该基于将要合并到的分支,该分支可能并不总是主分支。
http://git-scm.com/book/ch3-6.html上有一章是关于改变基础的,网上还有很多其他的资源。