Jay*_*ayD 329 git rename repository git-branch
我有4个像主人一样的分支 - > origin/regacy,FeatureA - > origin/FeatureA.
如上所示,我键入了错误的名称.
所以我想重命名一个远程分支名称(origin/regacy => origin/legacy或origin/master)
我试着在下面命令:
git remote rename regacy legacy
Run Code Online (Sandbox Code Playgroud)
但是git console向我返回了错误消息.
error : Could not rename config section 'remote.regacy' to 'remote.legacy'
Run Code Online (Sandbox Code Playgroud)
我怎么解决这个问题?
Cod*_*ard 611
您无法直接重命名远程分支.
您必须删除它,然后重新推送它.
# 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>
# 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>
Run Code Online (Sandbox Code Playgroud)
当您使用git branch -m(移动)时,git也会使用新名称更新您的跟踪分支.
git remote rename legacy legacy
git remote rename正在尝试更新配置文件中的远程部分.它会将具有给定名称的远程重命名为新名称,但在您的情况下,它没有找到任何名称,因此重命名失败.
但它不会按照您的想法执行,它会重命名您的本地配置远程名称而不是远程分支.
注意 Git服务器可能允许您使用Web界面或外部程序(如Sourctree等)重命名git分支,但您必须记住,在git中所有工作都在本地完成,因此建议使用上述命令进行工作.
小智 174
检查您正在使用以下命令的分支
git branch -a
Run Code Online (Sandbox Code Playgroud)
签出您要重命名的分支
git checkout branch_to_rename
Run Code Online (Sandbox Code Playgroud)
使用重命名分支
git branch -m new_name
Run Code Online (Sandbox Code Playgroud)
推动更改
git push origin :old_name new_name
Run Code Online (Sandbox Code Playgroud)
小智 94
如果您错误地命名了分支并将其推送到远程存储库,请按照以下步骤重命名该分支(基于本文):
重命名您当地的分支:
如果您在分支机构上,则要重命名:
git branch -m new-name
如果你在不同的分支:
git branch -m old-name new-name
删除old-name远程分支并推送new-name本地分支:
git push origin :old-name new-name
重置新名称本地分支的上游分支:
切换到分支,然后:
git push origin -u new-name
Vit*_*hyn 43
如果您在要重命名的分支上:
git branch -m new-name
Run Code Online (Sandbox Code Playgroud)
如果您当前留在不同的分支:
git branch -m old-name new-name
Run Code Online (Sandbox Code Playgroud)
留在目标分支上并:
git push origin :old-name new-name
Run Code Online (Sandbox Code Playgroud)
切换到目标分支,然后:
git push origin -u new-name
Run Code Online (Sandbox Code Playgroud)
loo*_*bly 41
git branch -m <old_name> <new_name>
Run Code Online (Sandbox Code Playgroud)
将您的本地分支重命名
master为legacy
git branch -m master legacy
Run Code Online (Sandbox Code Playgroud)
- 删除旧名称的远程分支。
- 将具有新名称的本地分支推送到远程存储库。
git push origin :regacy
git push origin legacy
Run Code Online (Sandbox Code Playgroud)
git push origin :regacy删除名为 的远程分支regacy。git push origin legacy将名为 Legacy 的本地分支推送到远程存储库,并创建一个名为 的新远程分支legacy。
pti*_*tim 29
似乎有一种直接的方式:
如果你真的只想远程重命名分支(不同时重命名任何本地分支),你可以用一个命令来完成
git push <remote> <remote>/<old_name>:refs/heads/<new_name> :<old_name>
有关详细信息,请参阅原始答案
Bay*_*bir 28
本地和远程重命名 Git 分支:
\n首先切换到要重命名的本地分支:
\ngit checkout <旧名称>
\n通过键入以下内容重命名本地分支:
\ngit 分支 -m <新名称>
\n至此,您已经重命名了本地分支。如果您\xe2\x80\x99 已将 <old_name> 分支推送到远程存储库,请执行以下步骤来重命名远程分支。
\ngit push origin -u <新名称>
\n删除 <old_name> 远程分支:
\ngit push origin --delete <旧名称>
\n\xe2\x9c\x85 就是\xe2\x80\x99。您已成功重命名本地和远程 Git 分支。
\n小智 21
也可以通过以下方式完成。
首先,重命名本地分支,然后重命名远程分支。
重命名本地分支:
如果登录另一个分支,
git branch -m old_branch new_branch
Run Code Online (Sandbox Code Playgroud)
如果登录到同一分支,
git branch -m new_branch
Run Code Online (Sandbox Code Playgroud)
重命名远程分支:
git push origin :old_branch // Delete the remote branch
git push --set-upstream origin new_branch // Create a new remote branch
Run Code Online (Sandbox Code Playgroud)
avi*_*amg 14
附加一个简单的代码片段来重命名当前分支(本地和源头):
git branch -m <oldBranchName> <newBranchName>
git push origin :<oldBranchName>
git push --set-upstream origin <newBranchName>
Run Code Online (Sandbox Code Playgroud)
来自 git 文档的解释:
git branch -m或 -M 选项,将重命名为 . 如果有相应的 reflog,则将其重命名为 match,并创建一个 reflog 条目以记住分支重命名。如果存在,必须使用 -M 来强制重命名发生。
特殊的 refspec :(或 +: 允许非快进更新)指示 Git 推送“匹配”分支:对于本地端存在的每个分支,如果已存在同名分支,则更新远程端在远方。
--set-upstream 设置跟踪信息,因此被认为是上游分支。如果没有指定,则默认为当前分支。
没有直接的方法,
重命名本地分支,
我当前的分支是master
git branch -m master_renamed #master_renamed是master的新名称
删除远程分支,
git push origin --delete master #origin 是remote_name
将重命名的分支推送到远程,
git push origin master_renamed
就是这样...
另一个解决方法如下:
进一步来说:
# 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>
Run Code Online (Sandbox Code Playgroud)
重命名本地分支
git branch -m new-namegit branch -m old-name new-name更新远程分支
git push -d origin old-name设置新上游
git push origin -u new-name| 归档时间: |
|
| 查看次数: |
193097 次 |
| 最近记录: |