背景
当前GitHub推荐使用main作为远程仓库的默认分支,而git仍然使用master作为本地默认分支,有时一不小心push,导致远程仓库和本地仓库“不一致”,这里的“不一致”是soft的。例如:
你fork了一个master为主分支的仓库,然后克隆到本地,习惯性地使用了以下操作,切换到main分支
git branch -M main
在做了更改之后,你直接将更改后的内容推到的远程仓库
git push origin main
此时,远程仓库没有main分支,就会创建一个新的main分支,最终造成了远程仓库有两个分支main和master而本地仓库只有main,并且master为默认分支。
代码强迫症患者肯定不允许存在这种问题。
解决方案
git删除分支的命令为:
// 删除本地分支
git branch -d localBranchName
// 删除远程分支
git push origin --delete remoteBranchName
我尝试删除远程分支master
git push origin --delete master
报错,不允许删除该分支。
在大神云集的StackOverflow上找到了原因和解决方案。
为什么不允许删除master?
因为当前GitHub仓库master为默认分支,GitHub不允许直接删除默认分支。一般我们git clone如果不指定分支名,那么克隆默认分支。
如何删除master分支?
到该仓库的设置Settings修改main为默认分支,然后再执行删除master分支命令
git push origin --delete master
这时就可以成功删除远程的master仓库了,main仓库也变成了我们的默认分支,达到了我们“预期的目标”。
相关Git指令
在本地git仓库,修改master分支为main
# 初始化git仓库,将当前分支强制更改为main分支
# 强迫症患者使用git的肌肉记忆
git init
git branch -M main
可以更改git全局变量,使得初始化git仓库默认分支为main
git config --global init.defaultBranch main
每次提交的时候都不太会写提交信息,如何正确的使用git commit,其实也是有规范的。
如何规范你的Git commit?
前端开发对commit的提交有很多工具强制要求符合规范,可以自行搜索相关内容。
有空的话也可以去Vscode或者Jetbrains的Plugins模块搜索关键词,有很多神奇的工具可以探索和使用。