GIT - 用更新的分支替换Master分支

时间:2017-02-15 09:25:04

标签: git

我的存储库中有以下分支结构: enter image description here

不再需要MATER,所以我在它上面创建了一个名为' OLD_MASTER'以防万一我们需要它。现在我想用NEW_MASTER替换MASTER(基本上是重命名和删除以前的MASTER)如何实现?

4 个答案:

答案 0 :(得分:1)

删除当前MASTER分支,并从MASTER创建新的NEW_MASTER分支。然后强制推送到remote/MASTER(当MASTER历史记录改变时需要强制推送)。

$ git checkout NEW_MASTER      
$ git branch -D MASTER         # delete local MASTER

$ git checkout -b MASTER       # create & checkout a new MASTER from NEW_MASTER
$ git push -f origin MASTER    # force push, update remote MASTER

答案 1 :(得分:1)

我会通过以下方式解决这个问题:

1)将NEW_MASTER分支推送到远程MASTER,覆盖当前存在的分支:

git push origin NEW_MASTER:MASTER

2)接下来,删除您当地的MASTER分支:

git branch -d MASTER

3)最后,通过提取和结帐引入更新的远程MASTER分支:

git fetch origin
git checkout origin/MASTER
git checkout -b MASTER

答案 2 :(得分:1)

理论上,这是一个三步过程:

查看"新主人"分支

$ git checkout new_master

删除当前的主分支

$ git branch -D master

根据您当前的分支

创建一个新分支

$ git checkout -b master

<强>无论其

如果repo由其他人共享或者有其他人可能已经克隆的遥控器那么你需要小心。如果没有其他人共享此代码,那么你应该没问题。如果它是一个很大的代码库,那么还可以让老主人回到你想​​要新主人的方式。

答案 3 :(得分:0)

最终我使用的解决方案是类似的,但我没有使用'reset --hard'创建一个新的主分支:

git checkout MASTER
git reset --hard NEW_MASTER (make MASTER branch point to HEAD of NEW_MASTER)
git push origin master:master -f