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

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


我试着:

git remote rename regacy legacy

但这给出了一个错误:

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


当前回答

另一个解决方法如下:

签出到您想更改的分支 从它创建一个新分支 上游设置为远程 从本地和远程删除旧的分支

更具体地说:

# Checkout to the branch you want to rename
git checkout <old_branch_name>

# Create a new branch from the old one and checkout to it
git checkout -b <new_branch_name>

# Push the new branch to remote
git push -u <origin> HEAD

# Delete local branch
git branch -d <old_branch_name>

# Delete remote branch
git push <origin> -d <old_branch_name>

其他回答

似乎有一个直接的方法:

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

详见原文。

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

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.

托管在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等,它就可以工作。 你可以根据自己的意愿进行修改,但这只是个概念。

没有直接的方法,

重命名本地分支, 我现在的分支是master Git branch -m master_rename #master_rename是master的新名称 删除远程分支, Git push origin——delete master #origin是remote_name 将重命名的分支推到远程, Git推送origin master_rename

就是这样……