完成软件构造课程的实验时,我在指导手册中看到如下的一段话:
提交到 GitHub 仓库后,TA 会读取你的 master 分支。如果你在其他分支上开发,提交前请务必将最新修改合并至 master 分支。如果实验要求你设置其他分支,也请务必将各分支指向正确的 commit,TA 根据分支名来获取你的代码。
然而,GitHub在2020年宣布开始逐步将默认分支名由 master
更改为 main
,该项目的官方仓库如下:Renaming the default branch from master。现在,在GitHub上创建的新仓库的默认分支名称为 main
。遂向老师确认是否需要将默认分支修改回 master
,得到了肯定的答案(Piazza问题链接)。
本文记录将默认分支由 main
分支修改为 master
的全过程。
首先展示一下我当前仓库的分支,执行命令:
1 | git branch -a # -a表示列出所有分支,包括本地分支和远程分支 |
即本地和远程仓库都只有一个main分支。此时我已经进行了部分commit和push,故不能简单地在GitHub页面上更改。总地来说,需要进行以下几步:
将本地的
main
分支更名为master
将本地的
master
分支push到远程仓库在GitHub上将默认分支修改为
master
删除远程的
main
分支
将本地的 main
分支更名为 master
在Git命令中,修改分支名的操作为:
1 | git branch -m old_name new_name |
因此,执行一条Git命令即可:
1 | git branch -m main master |
将本地的 master
分支push到远程仓库
1 | git push origin master |
push结束后,再次查看分支,可以看到远程仓库已经有两个分支:main
和 master
:
打开GitHub仓库页,从红框所示部分也可以看到:
在GitHub上将默认分支修改为 master
在仓库页单击Settings -> Branches,在Default branch一栏将会看到当前的默认分支,即 main
分支。如下图所示,单击右侧的 ⇌ 按钮,选择默认分支为 master
分支后单击Update,就在GitHub上完成了默认分支的修改。
删除远程的 main
分支
此时 master
分支已经设置完毕,但远程还有一个没用的 main
分支需要删除。执行push操作,删除远程的 main
分支:
1 | git push --delete origin main |
再次列出分支,发现远程的 main
分支已消失,同样在GitHub上也可以看到只剩下了一个 master
分支。
至此,本地和远程仓库的默认分支均由 main
更换为 master
。