有几种方法可以实现这一点:
- 更改您的本地分支,然后推送您的更改
- 使用新名称将分支推送到远程,同时在本地保留原始名称
重命名本地和远程
# Rename the local branch to the new name
git branch -m <old_name> <new_name>
# Delete the old branch on remote - where <remote> is, for example, origin
git push <remote> --delete <old_name>
# Or shorter way to delete remote branch [:]
git push <remote> :<old_name>
# Prevent git from using the old name when pushing in the next step.
# Otherwise, git will use the old upstream name instead of <new_name>.
git branch --unset-upstream <new_name>
# Push the new branch to remote
git push <remote> <new_name>
# Reset the upstream branch for the new_name local branch
git push <remote> -u <new_name>
仅重命名远程分支
信用:ptim
# In this option, we will push the branch to the remote with the new name
# While keeping the local name as is
git push <remote> <remote>/<old_name>:refs/heads/<new_name> :<old_name>
重要的提示:
当您使用git branch -m
(移动)时,Git 也会使用新名称更新您的跟踪分支。
git remote rename legacy legacy
git remote rename
正在尝试更新配置文件中的远程部分。它将使用给定名称的遥控器重命名为新名称,但在您的情况下,它没有找到任何名称,因此重命名失败。
但它不会按照你的想法去做;它将重命名您的本地配置远程名称而不是远程分支。
注意 Git 服务器可能允许您使用 Web 界面或外部程序(如 Sourcetree 等)重命名 Git 分支,但您必须记住,在 Git 中所有工作都是在本地完成的,因此建议使用上述命令去工作。