我该如何将远程分支重命名为origin/legacy或origin/master?
我尝试过:
git remote rename regacy legacy
但是这个出错了:
错误:无法将配置部分“remote.regacy”重命名为“remote.legacy”
git remote rename regacy legacy
有几种方法可以完成这个任务:
# 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 branch -m
(移动)命令时,Git还会将新名称更新到跟踪分支中。
git remote rename legacy legacy
git remote rename
尝试更新配置文件中的远程部分。它将把给定名称的远程更名为新名称,但在您的情况下,它没有找到任何内容,因此重命名失败了。
但是它不会做您想做的事情;它将重命名您的本地配置远程名称,而不是远程分支。
注意: Git服务器可能允许您使用Web界面或外部程序(如Sourcetree等)重命名Git分支,但请记住,在Git中所有工作都是在本地完成的,因此建议使用上述命令进行操作。
git checkout <new_name> ; git branch --unset-upstream
。 - Miguel Ping--unset-upstream
选项,则可以按预期工作。 - Adam TuttleOLD=<old>; NEW=<new>; REMOTE=<remote>; git branch -m $OLD $NEW && git push $REMOTE --delete $OLD && git push $REMOTE $NEW && git push $REMOTE -u $NEW
- Irek Mirgaleev重命名本地分支:
如果你在要重命名的分支上:
git branch -m 新名称
如果你在其他分支上:
git branch -m 旧名称 新名称
删除 旧名称
的远程分支并推送 新名称
的本地分支:
git push origin :旧名称 新名称
重置 新名称
本地分支的上游分支:
切换到该分支,然后:
git push origin -u 新名称
git push <remote> --delete old_name
和git push origin :old-name new-name
的区别,以删除分支。 - Ashutosh Chamoli请使用以下命令检查您当前所在的分支
git branch -a
切换到您要重命名的分支
git checkout branch_to_rename
使用重命名分支
git branch -m new_name
提交更改
git push origin :old_name new_name
如果您正在要重命名的分支上:
git branch -m new-name
如果您目前停留在不同的分支上:
git branch -m old-name new-name
保持在目标分支上,并:
git push origin :old-name new-name
切换到目标分支,然后执行以下操作:
git push origin -u new-name
git push origin :old-name new-name
命令,因为这会关闭你当前打开的PR。该命令用于重命名分支,但请确保不要意外地推送了一个空白分支。 - Sam Lahmgit push origin :old-name new-name
命令之前,请确保您的默认远程分支没有设置为您想要重命名和删除的当前分支。 - Ekanem Eno看起来有一种直接的方法:
如果你真的只想远程重命名分支(而不同时重命名任何本地分支),你可以用一个单独的命令来完成,如下:
git push <remote> <remote>/<old_name>:refs/heads/<new_name> :<old_name>
更多详细信息请参见原答案。
2.20.1
中无法工作。删除了旧分支,但新分支没有被创建。 - Paul Razvan Berg以下是另一种方法。
首先重命名本地分支,然后重命名远程分支。
重命名本地分支:
如果在另一个分支中登录,
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 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
的新远程分支。
切换到要重命名的本地分支
git checkout <old_name>
重命名本地分支
git branch -m <new_name>
推送 <new_name>
本地分支并重置上游分支
git push origin -u <new_name>
删除 <old_name>
远程分支
git push origin --delete <old_name>
本地和远程重命名 Git 分支:
首先切换到您想要重命名的本地分支:
git checkout <old_name>
通过输入以下命令来重命名本地分支:
git branch -m <new_name>
此时,您已经成功重命名了本地分支。如果您已经将 <old_name> 分支推送到远程存储库,请执行以下步骤以重命名远程分支。
git push origin -u <new_name>
删除 <old_name> 远程分支:
git push origin --delete <old_name>
✅ 完成了。您已成功重命名了本地和远程 Git 分支。
附上一个简单的代码片段,用于重命名您当前的分支(本地和远程):
git branch -m <oldBranchName> <newBranchName>
git push origin :<oldBranchName>
git push --set-upstream origin <newBranchName>
git branch -m 或者使用 -M 选项来重命名分支,如果原来的分支有相应的 reflog,则会将其重命名以匹配新名称,并创建一个 reflog 来记录分支更名。如果新名称的分支已经存在,则必须使用 -M 选项来强制进行重命名。
特殊的 refspec :(或 +: 以允许非快进式更新)指示 Git 推送 "matching" 分支:对于每个本地存在的分支,如果远程端已经存在同名的分支,则更新远程端上的分支。
--set-upstream 设置's 的跟踪信息,使得是's 的上游分支。如果没有指定,则默认为当前分支。
git branch -M 新名称
3.git push -d origin 旧名称
4.git push -u origin 新名称
。 - aderchoxold name
git branch –m old-name new-name
git checkout new name
git push -u origin new-name
new name
,现在你可以删除旧分支的远程头部了git push -d origin old-name
。现在本地和远程仓库只有一个新分支包含所有提交记录,旧分支已经安全删除了,在新分支创建后。