我有一个本地分支主指向一个远程分支原点/regacy(哎呀,拼写错误!)

如何将远程分支重命名为原点/遗留或原点/主?


我试着:

git remote rename regacy legacy

但这给出了一个错误:

错误:不能重命名配置区段的远程。Regacy '到'remote.legacy'


当前回答

这甚至可以在不重命名本地分支的情况下完成,只需简单的三个步骤:

去你的GitHub仓库 从要重命名的旧分支创建一个新分支 删除旧的分支

其他回答

附加一个简单的片段来重命名你的当前分支(本地的和原始的):

git branch -m <oldBranchName> <newBranchName>
git push origin :<oldBranchName>
git push --set-upstream origin <newBranchName>

git文档中的解释:

git branch -m or -M option, will be renamed to . If had a corresponding reflog, it is renamed to match , and a reflog entry is created to remember the branch renaming. If exists, -M must be used to force the rename to happen. The special refspec : (or +: to allow non-fast-forward updates) directs Git to push "matching" branches: for every branch that exists on the local side, the remote side is updated if a branch of the same name already exists on the remote side. --set-upstream Set up 's tracking information so is considered 's upstream branch. If no is specified, then it defaults to the current branch.

检查您正在使用下面的命令的分支

git branch -a 

签出到要重命名的分支

git checkout branch_to_rename

使用以下命令重命名分支

git branch -m new_name

推动改变

git push origin :old_name new_name


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

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

重命名本地和远程

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

Git远程重命名遗留遗留

Git远程重命名正在尝试更新配置文件中的远程部分。它将使用给定名称将远程重命名为新名称,但在您的示例中,它没有找到任何名称,因此重命名失败。

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


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

如果您已经将错误的名称推到远程,请执行以下操作:

切换到要重命名的本地分支 Git checkout <old_name> 重命名本地分支 Git分支-m <new_name> 推送<new_name>本地分支并重置上游分支 Git push origin -u <new_name> 删除<old_name>远程分支 Git push origin——delete <old_name>

这是基于这篇文章。

仅重命名远程分支:

(set -ex; old=oldname; new=newname; git push origin origin/$old:refs/heads/$new :$old)

or:

git-rr() (set -ex; old=$1; new=$2; git push origin origin/$old:refs/heads/$new :$old)

git-rr oldname newname