GIT - 用新分支替换Master分支

3
我在我的存储库中有以下分支结构: enter image description here MATER已不再需要,因此我基于它创建了一个名为“OLD_MASTER”的新分支,以防我们将来需要它。现在我想用NEW_MASTER替换MASTER(基本上是重命名和删除以前的MASTER),如何实现?
4个回答

1
我会按照以下方式进行:
1)将您的NEW_MASTER分支作为MASTER推送到远程,覆盖当前存在的分支:
git push origin NEW_MASTER:MASTER

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

git branch -d MASTER

3) 最后,通过fetch和checkout带入更新的远程MASTER分支:

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

1

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

检出“new master”分支

$ git checkout new_master

删除当前的master分支

$ git branch -D master

基于您当前的分支创建一个新的分支

$ git checkout -b master

然而

如果该仓库由其他人共享或有其他人可能克隆的远程,则需要小心。如果没有其他人共享此代码,则可以放心执行此操作。如果它是一个大型代码库,那么还需要进一步工作,将旧的主分支恢复为您想要的新主分支。


1
删除当前的MASTER分支并从NEW_MASTER创建一个新的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

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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接