如何重命名 Git 分支(本地和远程)

重命名分支:git branch -m 新名(本地);远程没有"重命名",需推新名分支 git push -u origin 新名,删旧远程分支 git push origin --delete 旧名,并让协作者更新本地跟踪。

最佳实践
Git 分支协作与合并示意

本地重命名:git branch -m 新分支名。远程没有重命名概念,要"推新的、删旧的":git push -u origin 新名 建立新远程分支,git push origin --delete 旧名 删掉旧的。

完整流程

# 1. 本地重命名(站在要改名的分支上)
git checkout old-name
git branch -m new-name

# 2. 推送新分支并建立跟踪
git push -u origin new-name

# 3. 删除远程旧分支
git push origin --delete old-name

协作者要做什么

远程分支名变了,其他人的本地引用会失效,他们需要:

git fetch --prune                  # 清掉旧的 origin/old-name
git checkout new-name              # 检出新的(本地有同名旧分支的话先处理)

注意事项

  • GitHub 上有基于旧分支的开放 PR:删旧分支会让 PR 自动关闭!先去 PR 页面把目标分支改成新分支,或在 GitHub 网页直接 Rename(它会帮你转移 PR);
  • main/master 这类保护分支改名(如 master→main)GitHub 有专门的界面操作,会自动处理重定向,别用命令行删建。

常见问题(FAQ)

Q:改名后 CI/保护规则会跟着走吗?

分支保护规则、CI 触发条件通常按名字匹配——改名后去检查一遍这些配置。

Q:本地没推过的分支改名?

纯本地分支只需第一步 git branch -m 新名,远程无感知。

Q:GitHub 网页改名和命令行有区别吗?

网页改名(分支页面的 Rename 按钮)会自动处理开放 PR 的重定向和协作者提示,比重命名的命令行三板斧更友好。

参考资料

获取专属方案

联系我们

加入社区

微信扫码
加入官方交流群

立即体验

在线开通,按量计费,真正的云服务!

立即开始

选择观测云版本

代码托管平台