【git】改 GitLab 远程分支名;
要改 GitLab 远程分支名,本质做法是:把旧分支推成一个新名字,再删除旧分支;如果是默认分支,还要在 GitLab 里把默认分支指到新名字。
一、命令行做法(通用)
# 1) 本地把 old 分支改名为 new(或直接基于 old 新建 new)
git checkout old
git branch -m old new# 2) 推送到远端并建立跟踪
git push -u origin new# 3) 删除远端旧分支
git push origin --delete old
# 等价:git push origin :old
如果改的是 “默认分支”(例如 master→main)
- 本地改名并推送(同上)
- 到 GitLab:Settings → Repository → Default branch 里把默认分支改成
new
- 如有 Protected branches 规则,给
new
也加上相同保护,必要时取消old
的保护 - 删除远端旧分支:
git push origin --delete old
- 通知同事更新本地:
git fetch origin
git branch -m old new
git branch -u origin/new new
git remote set-head origin -a
注意:删除远端分支、修改默认分支或保护分支,需要 Maintainer / Owner 权限;如果分支被保护,先临时取消保护或由 Maintainer 操作。
二、GitLab 网页端(默认分支相关)
- Repository → Branches:确认
new
分支已存在(没有就从 old 建一个) - Settings → Repository → Default branch:把默认分支改成
new
- Repository → Branches:删除
old
(若受保护,先在 Protected branches 里取消保护或复制规则到new
)
三、TortoiseGit(你在用)
-
右键仓库 → TortoiseGit → Browse refs,右击本地
old
→ Rename 为new
-
推送:右键 → TortoiseGit → Push
- 设定 “Local branch: new → Remote branch: new”,勾选
--set-upstream
(等价-u
)
- 设定 “Local branch: new → Remote branch: new”,勾选
-
删除远端旧分支:
- 仍在 Browse refs 中,右击
remotes/origin/old
→ Delete(或 Push 对话框把 Remote branch 填:old
也会删除)
- 仍在 Browse refs 中,右击
常见坑
- 受保护分支:删除/强推会被拒;到 Settings → Repository → Protected branches 调整权限。
- CI/MR 目标分支:改名后检查 Pipeline 变量、MR 目标分支是否需要改成新名字。
- 权限不足:出现
pre-receive hook declined
、protected branch
多为权限/保护策略问题,请让 Maintainer 执行或临时放开规则。