Git 中文手册

git 分支重命名:本地和远程分支怎么改名

2026-09-06 约 3 分钟阅读

分支名打错了或想改名?本文讲清重命名本地分支、以及已推到远程的分支改名的完整三步,含 origin 旧分支删除与重新关联。

场景:分支名打错字了,或者想改成更规范的名字(如 fix-loginfix/login)。分两种情况:只改本地,或连远程一起改。

先搞清一个事实

分支本质是指向某次提交的指针,重命名只是改指针的名字,不碰提交历史,完全安全。

一、重命名本地分支

# 当前就在该分支上:
git branch -m 新分支名

# 不在该分支上,指定旧名新名:
git branch -m 旧分支名 新分支名

-m(move)就是重命名。执行后 git branch 会看到新名字。

二、重命名已推送到远程的分支(三步)

远程分支改名 = 推一个新名分支 + 删除旧名分支

# 1. 先改本地分支名
git branch -m 旧名 新名

# 2. 推新名分支并关联跟踪
git push origin 新名
git push origin -u 新名   # -u 建立本地新名与远程新名的追踪

# 3. 删除远程的旧名分支
git push origin --delete 旧名

完成。此时远程只有新名字,本地指向也正确。

验证是否改成功

git branch -a        # 看本地+远程分支名
git remote show origin  # 查看远程分支与本地追踪关系

完整示例

# 假设要把 feature-login 改名为 feature/login
git branch -m feature-login feature/login
git push origin feature/login
git push origin -u feature/login
git push origin --delete feature-login

多人协作时的注意

  • 若远程旧分支别人也在用,删除会打断他们,改名前先沟通,或用新名字重推、保留旧分支的折中。
  • 删除远程分支命令 git push origin --delete 旧名 要谨慎,确认无其他人使用。
  • 本地旧分支的追踪引用可能残留,可用 git remote prune origin 清理。

常见问题

  • push 提示旧分支没有上游:说明本地旧名分支的追踪还指向远程旧名,重推新名后用 -u 重建追踪即可。
  • 改名后 pull 报错:检查 .git/config 里分支的 merge 配置是否还是旧名,重设 git branch --set-upstream-to=origin/新名

一句话速记

本地改名 git branch -m;远程改名 = push 新名 + push --delete 旧名

?

常见问题 FAQ

重命名分支会影响提交历史吗?
不会。分支只是指向某次提交的指针,改名只是改指针的名字,提交历史、文件内容完全不变。
正在某个分支上,能重命名它吗?
可以。在分支内用 git branch -m 新名 即可重命名当前分支;不在该分支则需 git branch -m 旧名 新名。
远程分支改名后旧的还在怎么办?
改名其实是「新推一个 + 删掉旧的」。推新名分支并删掉远程旧分支(git push origin --delete 旧名),同时更新本地追踪。若多人共用,改名前最好先沟通。
会不会删掉别人的远程分支?
会。git push origin --delete 旧名 删除的是远程那个分支,若团队里别人也在用它,删除会影响他们,务必先确认或改用新分支保留旧分支。