我有一个本地分支主指向一个远程分支原点/regacy(哎呀,拼写错误!)
如何将远程分支重命名为原点/遗留或原点/主?
我试着:
git remote rename regacy legacy
但这给出了一个错误:
错误:不能重命名配置区段的远程。Regacy '到'remote.legacy'
我有一个本地分支主指向一个远程分支原点/regacy(哎呀,拼写错误!)
如何将远程分支重命名为原点/遗留或原点/主?
我试着:
git remote rename regacy legacy
但这给出了一个错误:
错误:不能重命名配置区段的远程。Regacy '到'remote.legacy'
当前回答
似乎有一个直接的方法:
如果您真的只想远程重命名分支(而不同时重命名任何本地分支),您可以使用如下命令来完成此操作 Git push <remote> <remote>/<old_name>:refs/heads/<new_name>:<old_name> 在Git中远程重命名分支
详见原文。
其他回答
除了其他人列出的其他步骤,请记住:
如果你试图删除默认的分支,例如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 branch -a
签出到要重命名的分支
git checkout branch_to_rename
使用以下命令重命名分支
git branch -m new_name
推动改变
git push origin :old_name new_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
它也可以通过以下方式完成。
首先重命名本地分支,然后重命名远程分支。
重命名本地分支:
如果登录到另一个分支,
git branch -m old_branch new_branch
如果登录到同一个分支,
git branch -m new_branch
重命名远程分支:
git push origin :old_branch // Delete the remote branch
git push --set-upstream origin new_branch // Create a new remote branch
如果你想用一个命令重命名当前分支,就像这样:
git rename my-new-branch-name
然后,你必须创建一个名为git-rename的文件,使其可执行(chmod +x git-rename),并将其保存到你的$PATH文件夹中,包含以下内容:
#!/bin/sh
currentBranch="$(git rev-parse --abbrev-ref HEAD)"
test $# != 1 && cat <<EOF && exit 1
Renames the current branch ($currentBranch) both locally and remotely.
USAGE:
git rename <new branch name>
EOF
newBranch="$1"; shift
git branch -m "$newBranch" && \
git push origin :"$currentBranch" "$newBranch"