【git】改 GitLab 远程分支名;

要改 GitLab 远程分支名 ,本质做法是:把旧分支推成一个新名字 ,再删除旧分支 ;如果是默认分支,还要在 GitLab 里把默认分支指到新名字。


一、命令行做法(通用)

bash 复制代码
# 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)

  1. 本地改名并推送(同上)
  2. 到 GitLab:Settings → Repository → Default branch 里把默认分支改成 new
  3. 如有 Protected branches 规则,给 new 也加上相同保护,必要时取消 old 的保护
  4. 删除远端旧分支:git push origin --delete old
  5. 通知同事更新本地:
bash 复制代码
git fetch origin
git branch -m old new
git branch -u origin/new new
git remote set-head origin -a

注意:删除远端分支、修改默认分支或保护分支,需要 Maintainer / Owner 权限;如果分支被保护,先临时取消保护或由 Maintainer 操作。


二、GitLab 网页端(默认分支相关)

  1. Repository → Branches :确认 new 分支已存在(没有就从 old 建一个)
  2. Settings → Repository → Default branch :把默认分支改成 new
  3. Repository → Branches :删除 old(若受保护,先在 Protected branches 里取消保护或复制规则到 new

三、TortoiseGit(你在用)

  1. 右键仓库 → TortoiseGit → Browse refs ,右击本地 oldRenamenew

  2. 推送:右键 → TortoiseGit → Push

    • 设定 "Local branch: new → Remote branch: new",勾选 --set-upstream(等价 -u
  3. 删除远端旧分支:

    • 仍在 Browse refs 中,右击 remotes/origin/oldDelete (或 Push 对话框把 Remote branch 填 :old 也会删除)

常见坑

  • 受保护分支 :删除/强推会被拒;到 Settings → Repository → Protected branches 调整权限。
  • CI/MR 目标分支:改名后检查 Pipeline 变量、MR 目标分支是否需要改成新名字。
  • 权限不足 :出现 pre-receive hook declinedprotected branch 多为权限/保护策略问题,请让 Maintainer 执行或临时放开规则。