我有两个分支,主分支和测试分支。我需要删除master分支,然后将测试重命名为master并将其设置为默认值。有关如何执行此操作的任何提示?
答案 0 :(得分:0)
使用WebUI或Git有几种方法可以做到这一点。但是,这里的问题是您无法删除默认分支,并且默认分支通常为master
。不管您使用什么选项,请将存储库的新版本克隆到另一个文件夹中,以免造成意外混乱。
使用WebUI:
master
testing
上输入master
,GitHub将提供从testing
到master
的分支。此时它们是相同的,即它们指向完全相同的提交。master
testing
。使用Git (假设本地存储库与上游保持最新):
git push origin testing:master -f
testing
:git push origin :testing
让我知道是否可行。
答案 1 :(得分:0)
在本地切换要创建新主节点的分支的名称,然后强制将其推送最简单;在进行此操作时,我们可以备份旧的主机,以防万一。
git branch -m master old-master
git branch -m testing master
# old master saved, new master is now `master`
git push -f origin master
# master overridden in the repo
git push -f origin old-master
git branch -d old-master
# Old master backed up, removed locally
请记住,与您合作的任何人都需要解决他们的分支机构与新的主管之间的任何冲突。
old-master
分支在服务器上只占用很少的空间,因此,如果出于某些原因我们确实必须退回该分支,那么它是一个很好的安全网。您将执行类似于我们在此处所做的还原操作。
git branch -m master erroneous-master
git checkout -b master origin/old-master
git push -f master origin/master
git push -f erroneous-master origin/erroneous-master
出于同样的原因,我们拯救了错误的主人;我们可能想从中拯救事物。
当您确定不需要它们时,git push origin :branch-to-remove
将在以后删除不需要的分支。