如何变更Git仓库中的默认分支名?
文章目录
大致可分为下面几种情况:
-
1.仓库没有初始化,即空文件夹
-
1.1 初始化分支
-
1.2 使用clone的同步
-
-
2.仓库初始化,但并未推送
-
3.仓库已经推送至远程仓库
解决方式如下:
-
1.仓库没有初始化,即空文件夹:本地没有仓库的两种情形
-
1.1 初始化仓库并初始化分支
以下命令可以初始化仓库并初始化一个分支$ git init -b <branch-name># 例子:main为想变更的默认分支名$ git init -b main连接远程仓库$ git remote add origin <远端仓库链接>添加暂存区$ git add .提交本地仓库$ git commit -m "解释说明"推送到远程仓库 ---这里相当于在远端新建了一个main分支$ git push origin main 此时远端仓库已经有了main分支删除旧的远程分支(如果不想要旧的默认分支,可以删除)# 要删除的分支可能是默认分支、受保护分支等,需要先在仓库管理平台仓库设置中选择新分支main为默认分支,然后再执行命令。$ git push origin --delete <branch-name> # 例子$ git push origin --delete master
-
1.2 其他使用clone的同步
#对于其他 clone 的同步对于已经 clone 的仓库通过如下步骤进行同步:$ git fetch `拉取远端分支信息`$ git remote set-head origin -a `更新本地 upstream#例子:$ git branch -m master main# 上述命令将 `master` 分支重命名为了 `main`。但这个变更只是本地的,需要同步到远端。第二步:推送本地分支至远程仓库$ git push -u origin <branch-name># 例子$ git push -u origin main# 上述命令将新建的 `main` 分支同步到远端并设置 upstream 到了该分支。第三步:删除远程分支(如果不想要旧的默认分支,可以删除)# 要删除的分支可能是默认分支、受保护分支等,需要先在仓库管理平台仓库设置中选择新分支为默认分支,然后再执行命令。$ git push origin --delete <branch-name> # 例子$ git push origin --delete masterPS:关于git remote set-head命令的解释说明设置或删除跟踪仓库的HEAD,指向指定分支,命令行中的圆括号表示必选其中之一执行$ git remote set-head <origin> (-a | --auto | -d | --delete | <branch>) [-a|--auto] # set refs/remotes//HEAD according to remote [-d|--delete] # delete refs/remotes//HEAD
-
-
2.仓库初始化,但并未推送 :初始化后未推送,可以直接修改本地的分支名
$ git branch -m <oldbranch> <newbranch># 举例说明$ git branch -m master main连接远程仓库$ git remote add origin <远端仓库链接>添加暂存区$ git add .提交本地仓库$ git commit -m "解释说明"推送到远程仓库$ git push origin main 注意:这里在推送的时候,可能会报错,因为可能需要你先pull远程到本地,使远程与本地驳斥一致后,才可以推送不过,你也可以忽略报错的提示,使用-f强制推送,即$ git push origin main -f删除旧的远程分支(如果不想要旧的默认分支,可以删除)# 要删除的分支可能是默认分支、受保护分支等,需要先在仓库管理平台仓库设置中选择新分支为默认分支,然后再执行命令。$ git push origin --delete <branch-name> # 例子$ git push origin --delete master
-
3.仓库已经推送至远程仓库:已经提交至远程仓库,去修改分支名
第一步:先修改本地分支# 通过 `-m` 参数可修改分支名,而不影响 Git 提交历史。$ git branch -m <oldbranch> <newbranch># 例子git branch -m master main# 上述命令将 `master` 分支重命名为了 `main`。但这个变更只是本地的,需要同步到远端。第二步:推送本地分支至远程仓库$ git push -u origin <branch-name># 例子$ git push -u origin main# 上述命令将新建的 `main` 分支同步到远端并设置 upstream 到了该分支。第三步:删除远程分支# 要删除的分支可能是默认分支、受保护分支等,需要先在仓库管理平台仓库设置中选择新分支为默认分支,然后再执行命令。$ git push origin --delete <branch-name> # 例子$ git push origin --delete master