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

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


我试着:

git remote rename regacy legacy

但这给出了一个错误:

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


当前回答

除了其他人列出的其他步骤,请记住:

如果你试图删除默认的分支,例如master,当你运行git push origin:<branch_name>时,你会得到这个错误

! [remote rejected] master (refused to delete current branch: refs/heads/<branch_name>) error: failed to push some refs to '<repo_name>'. [remote rejected] master (refused to delete current branch: refs/heads/<branch_name>)

a)在删除分支之前更改默认值(Github示例)

去回购吧。 点击“设置” 修改默认分支如下图所示:

b)删除[target] remote:

$ git push origin:master

其他回答

似乎有一个直接的方法:

如果您真的只想远程重命名分支(而不同时重命名任何本地分支),您可以使用如下命令来完成此操作 Git push <remote> <remote>/<old_name>:refs/heads/<new_name>:<old_name> 在Git中远程重命名分支

详见原文。

重命名本地分支

 git branch -m <old_name> <new_name>

将本地分支从master重命名为legacy

git branch -m master legacy

重命名远程分支

删除使用旧名称的远程分支 将具有新名称的本地分支推到远程存储库

git push origin :regacy

git push origin legacy

Git push origin:regacy删除名为regacy的远程分支。 Git push origin legacy将名为legacy的本地分支推到远程存储库,并创建一个名为legacy的新远程分支。

仅重命名远程分支:

(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

首先,确保本地分支具有正确的新名称。 相应的命令是git branch -a。

现在,从远程存储库中删除具有旧的、不正确的名称的分支。 为此,使用以下命令 Git push origin——delete <old-name>

验证旧的分支已经被正确地删除。 现在添加具有正确名称的分支。 为此,使用命令git push origin -u <new-name>

最后,执行上游分支的重置,以确保更改是有效的。

除了其他人列出的其他步骤,请记住:

如果你试图删除默认的分支,例如master,当你运行git push origin:<branch_name>时,你会得到这个错误

! [remote rejected] master (refused to delete current branch: refs/heads/<branch_name>) error: failed to push some refs to '<repo_name>'. [remote rejected] master (refused to delete current branch: refs/heads/<branch_name>)

a)在删除分支之前更改默认值(Github示例)

去回购吧。 点击“设置” 修改默认分支如下图所示:

b)删除[target] remote:

$ git push origin:master