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
理论上,这是一个三步过程:
检出“new master”分支
$ git checkout new_master
删除当前的master分支
$ git branch -D master
基于您当前的分支创建一个新的分支
$ git checkout -b master
然而
如果该仓库由其他人共享或有其他人可能克隆的远程,则需要小心。如果没有其他人共享此代码,则可以放心执行此操作。如果它是一个大型代码库,那么还需要进一步工作,将旧的主分支恢复为您想要的新主分支。
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
最终我使用的解决方案类似,但是我没有创建一个新的主分支,而是使用了“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