Java后端开发学习笔记:删除远程的master分支

206 阅读2分钟

背景

当前GitHub推荐使用main作为远程仓库的默认分支,而git仍然使用master作为本地默认分支,有时一不小心push,导致远程仓库和本地仓库“不一致”,这里的“不一致”是soft的。例如:
fork了一个master为主分支的仓库,然后克隆到本地,习惯性地使用了以下操作,切换到main分支

git branch -M main

在做了更改之后,你直接将更改后的内容推到的远程仓库

git push origin main

此时,远程仓库没有main分支,就会创建一个新的main分支,最终造成了远程仓库有两个分支mainmaster而本地仓库只有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模块搜索关键词,有很多神奇的工具可以探索和使用。