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