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

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


我试着:

git remote rename regacy legacy

但这给出了一个错误:

错误:不能重命名配置区段的远程。Regacy '到'remote.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

其他回答

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

如果你试图删除默认的分支,例如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

仅重命名远程分支:

(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

托管在GitHub上的Git存储库中的分支可以使用存储库设置重命名。作为一个副作用,GitHub中的分支保护规则也将被改变。

访问存储库设置中的“分支”:https://github.com/<name>/<repository-name>/settings/ Branches 重命名分支 每个使用这个存储库的人都必须在本地做:

$ git获取 $ git checkout <new_name>

我使用这些git别名,它几乎自动完成工作:

git config --global alias.move '!git checkout master; git branch -m $1 $2; git status; git push --delete origin $1; git status; git push -u origin $2; git branch -a; exit;'

用法:git从_branch移动到_branch

如果你有默认的名称,如master, origin等,它就可以工作。 你可以根据自己的意愿进行修改,但这只是个概念。

我必须执行以下任务来重命名本地和远程分支:

# Rename the local branch to the new name
git branch -m <old_name> <new_name>

#  Delete the old remote branch
git push origin --delete <old_name>

# push to new remote branch - creates new remote branch
git push origin <new_name>

# set new remote branch as default remote branch for local branch
git branch --set-upstream-to=origin/<new_name> <new_name>