政策一定是后置的,企业和行业是探索的先行者。
2020年6月,GitHub 宣布它将开始在其站点上删除对master
的引用,并且认为通过将存储库中的默认分支名称更改为main
而不是master
,我们所有人都可以在消除技术上的分歧性语言方面迈出步伐。对于之前的代码存储库,如果你的代码 CI/CD 代码逻辑和分支名称没有关系(不会产生关联问题),不妨通过以下5个步骤,与大部分代码存储库行为保持一致。
从2021年1月开始,GitHub 将开始推出功能,以使重命名现有存储库的默认分支变得更加容易。https://github.com/github/renaming
TL;DR
1 | Step 1: create main branch locally, taking the history from master |
一、将master
分支移至main
第1步-
运行以下命令,使用master
的历史记录创建一个名为main
的分支。使用该参数-m会将master
分支上的所有提交历史记录转移到新的main
分支上,因此不会丢失任何内容。
1 | git branch -m master main |
二、将main
推送到远程仓库
请记住,git是本地计算机上的版本控制软件,而GitHub是存储代码的远程服务器。因此,您必须将新的main
分支推送到GitHub,并告诉本地分支开始跟踪具有相同名称的远程分支。
1 | git push -u origin main |
三、将HEAD指向“主要”分支
在此阶段,如果master
是您的默认分支,则必须先更改指向当前分支引用的指针HEAD,才能删除它。以下命令将其指向main
。
1 | git symbolic-ref refs/remotes/origin/HEAD refs/remotes/origin/main |
四、在GitHub网站上将默认分支更改为’main’
至此,您已经成功将所有内容都转移到了main
分支,但是如果不将GitHub中的默认分支更改为master
以外的其他内容,就无法删除master
分支。这是唯一需要您离开终端并在浏览器中导航到GitHub存储库的步骤。从那里,单击”Settings” -> “Branches”左导轨,然后将默认分支更改为main
。我在下面提供了一些屏幕截图,GitHub在此处提供了执行此操作的说明:https : //docs.github.com/en/github/administering-a-repository/setting-the-default-branch。
五、删除远程仓库上的master
分支
现在本地的master
已经消失了,在 GitHub 上没有指向它的东西,我们可以使用以下命令将其删除:
1 | git push origin --delete master |
搞定!我们应该不再在本地或在GitHub存储库上看到master
或remotes/origin/master
。
可以始终运行git branch -a
命令检查。
Reference
- 5 steps to change GitHub default branch from master to main
- Renaming the default branch from master
- master-to-main