git:重命名远程分支?

如果有一个仓库,我只有git://访问(通常只需push + pull),有没有一种方法可以像在本地使用git branch -m一样对存储库中的分支进行重命名?


您只需创建一个具有所需名称的新本地分支,将其推送到您的远程,然后删除旧的远程分支:

$ git branch new-branch-name origin/old-branch-name
$ git push origin --set-upstream new-branch-name
$ git push origin :old-branch-name

然后,要查看旧的分支名称,存储库的每个客户端都必须执行以下操作:

$ git fetch origin
$ git remote prune origin

注意:如果您的旧分支是您的主分支,您应该更改您的主分支设置。 否则,当你运行$ git push origin :old-branch-name ,会出现“禁止删除当前分支”的错误。


如果您真的只想远程重命名分支, 而无需同时重命名任何本地分支,则可以使用单个命令执行此操作:

git push <remote> <remote>/<old_name>:refs/heads/<new_name> :<old_name>

我写了这个脚本(git-rename-remote-branch),它提供了一个方便的快捷方式来轻松完成上述操作。

要集成@ ksrb的评论:这基本上做的是两个推入一个命令,第一个git push <remote> <remote>/<old_name>:refs/heads/<new_name>来推送一个基于旧远程的新远程分支跟踪分支,然后git push <remote> :<old_name>删除旧的远程分支。


首先检查你想重新命名的分支

git branch -m old_branch new_branch
git push -u origin new_branch

从远程删除旧分支:

git push origin :old_branch
链接地址: http://www.djcxy.com/p/2605.html

上一篇: git: renaming branches remotely?

下一篇: move a branch path in git (change its name, not its code)