Git:重命名分支
最后更新
用 git branch -m 重命名分支(-m 表示“move”)。只给一个参数时,它重命名你当前所在的分支;给两个参数时,可以按名称重命名任意分支。重命名只发生在本地:如果分支已经推送过,还需要删除远程上的旧名称,再推送新名称。
在终端在线编辑器中试试这些命令:浏览器里就是真正的 shell,无需安装。
语法
| 命令 | 作用 |
|---|---|
git branch -m new-name | 重命名当前所在的分支 |
git branch -m old-name new-name | 按名称重命名另一个分支 |
git branch -M new-name | 强制重命名(覆盖已存在的名称) |
重命名已推送到远程的分支
重命名只在本地生效,所以已推送的分支还需要额外三步。
| 步骤 | 命令 | 结果 |
|---|---|---|
| 1 | git branch -m old new | 在本地重命名分支 |
| 2 | git push origin --delete old | 删除远程上的旧名称 |
| 3 | git push -u origin new | 推送新名称并设置上游 |
Git 重命名分支常见问题
怎么重命名当前所在的分支?
运行
git branch -m new-name,只写新名称即可。Git 会直接重命名当前分支:你仍然停留在这个分支上,提交和历史都不受影响。不切换分支,怎么重命名它?
同时写上两个名称:
git branch -m old-name new-name。即使你当前在另一个分支上,也会把 old-name 重命名为 new-name。已经推送到 GitHub 的分支怎么重命名?
先用
git branch -m old new 在本地重命名,再用 git push origin --delete old 删除远程上的旧名称,最后用 git push -u origin new 推送新名称并设置上游。其他拥有旧分支的人需要更新他们的本地副本。-m 和 -M 有什么区别?
-m(move)会重命名分支,但如果目标名称的分支已经存在,它会拒绝执行,避免你意外覆盖别的分支。-M 会强制重命名,覆盖同名的已有分支。除非你确实想覆盖,否则请用 -m。可以在线练习吗?
可以。打开终端在线编辑器,就能在浏览器里的真实 shell 中运行这些命令,无需安装。Coddy 的免费互动 Git 课程也会完整讲解分支的用法。