我有四个分支(master, b1, b2和b3)。我在b1-b3上工作后,我意识到我在分支主上有一些应该在所有其他分支中更改的东西。我改变了我在master中需要的东西…这是我的问题:

我如何用主分支代码更新所有其他分支?


当前回答

@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时,它会创建一个额外的提交,但这很便宜。提交不需要成本。

其他回答

@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时,它会创建一个额外的提交,但这很便宜。提交不需要成本。

如果你想要恢复到上一次提交并删除日志历史记录

使用下面的命令,让我们假设你想要去到以前的提交,它有commititid SHA - 71e2e57458bde883a37b332035f784c6653ec509,你可以指向这个提交,它将不会显示任何日志消息在这个提交之后,所有的历史将被擦除。

git push origin +71e2e57458bde883a37b332035f784c6653ec509^:master

用你的主分支副本更新其他分支,如(备份)。 你可以按照任何一种方式(rebase或merge)…

做rebase(不会有任何额外的提交到备份分支)。 合并分支(将有一个额外的自动提交到 备份分支)。 注:Rebase只是建立一个新的base(一个新的副本)

git 结帐备份 Git 合并大师 git push

(重复执行其他分支,如backup2等)

git 结帐备份 git 变基大师 git push

(重复执行其他分支,如backup2等)

Git checkout master git拉 Git签出feature_branch Git重基master Git push -f

你需要做一个强有力的推动后,对主调基

从master更新你的分支:

  git checkout master
  git pull
  git checkout your_branch
  git merge master