git无内置重命名分支命令,需先用git branch -m重命名本地分支,再git push -u推送并设上游,最后git push --delete删除远程旧分支并git fetch -p清理本地远程跟踪引用。

Git 本身没有内置的 rename-branch 命令,但可以通过组合标准命令完成「重命名本地分支 + 同步更新远程追踪关系」的完整操作。关键在于:先重命名本地分支,再删除旧远程分支、推送新分支,并重新设置上游(upstream)追踪。
重命名本地分支并切换过去
如果你当前不在待重命名的分支上,先切换过去(例如原分支叫 feat/login,想改为 feat/auth-login):
- 执行
git checkout feat/login(或git switch feat/login) - 运行重命名命令:
git branch -m feat/auth-login
此时本地分支已改名,但尚未影响远程仓库,也未建立新的追踪关系。
推送新分支并设置上游追踪
重命名后需显式推送并关联远程分支:
- 推送新分支到远程:
git push origin -u feat/auth-login
(-u即--set-upstream,自动建立追踪) - 验证追踪是否生效:
git branch -vv,应看到feat/auth-login指向origin/feat/auth-login
删除远程旧分支(可选但推荐)
避免混淆,建议清理远程残留的旧分支引用:
- 执行:
git push origin --delete feat/login - 同步本地远程跟踪分支列表:
git fetch --prune或简写git fetch -p
这会移除本地记录中已不存在的远程分支(如 origin/feat/login),保持 git branch -r 干净。
其他协作者需手动更新
重命名对他人无自动影响。其他开发者需自行同步:
- 拉取最新远程分支信息:
git fetch - 删除本地对旧远程分支的追踪:
git branch --unset-upstream feat/login(如果还存在) - 切换到新分支(如有本地对应)或直接基于
origin/feat/auth-login工作
注意:他们本地的 feat/login 分支不会被自动删除或重命名,需人工决定是否保留或清理。











