小编典典

如何重命名 Git 本地和远程分支名称?

all

我有四个分支,例如 master -> origin/regacy,FeatureA -> origin/FeatureA。如您所见,我输入了错误的名称。

所以我想重命名一个远程分支名称(origin/regacy——origin/legacy 或 origin/master)

我尝试以下命令:

git remote rename regacy legacy

但是 Git 控制台向我返回了一条错误消息。

 error : Could not rename config section 'remote.regacy' to 'remote.legacy'

我怎么解决这个问题?


阅读 183

收藏
2022-02-28

共1个答案

小编典典

示意图,可爱的 git
远程图


有几种方法可以做到这一点:

  1. 更改您的本地分支,然后推送您的更改
  2. 使用新名称将分支推送到远程,同时在本地保留原始名称

重命名本地和远程

# 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(move) 时,Git 也会使用新名称 更新 您的跟踪分支。

git remote rename legacy legacy

git remote rename正在尝试更新配置文件中的远程部分。它会将具有给定名称的遥控器重命名为新名称,但在您的情况下,它没有找到任何名称,因此重命名失败。

它不会像你想的那样做;它将重命名您的 本地 配置远程名称,而 不是 远程分支。


注意 Git 服务器可能允许您使用 Web 界面或外部程序(如 Sourcetree 等)重命名 Git 分支,但您必须记住,在 Git
中所有工作都在本地完成,因此建议使用上述命令到工作。

2022-02-28