在本地和远程重命名Git分支?

时间:2016-05-03 09:05:09

标签: git git-branch

有没有办法在本地重命名Git分支并将其推送到远程分支,即使已经有很多提交推送到远程分支?

或者,是否需要创建新的本地分支,删除旧的本地分支,然后在远程存储库上重复操作?

1 个答案:

答案 0 :(得分:186)

是,

存在功能move以在本地重命名分支

git branch --move <old_name> <new_name>

但要推送它,你必须删除旧的并推送新的

git checkout <new_name>
git push origin [--set-upstream] <new_name>
git push origin --delete <old_name>
  

--set-upstream是可选的,它配置新的本地分支以跟踪推送的

您可以使用以下缩写:

  • 本地移动( - 移动):

    git branch -m <old_name> <new_name>
    
  • 推新分支(--set-upstream,optional):

    git push origin [-u] <new_name>
    
  • 删除( - 删除):

    git push origin -d <old_name>
    

NB。

感谢torek的评论:

顺便提一下,值得一提的是你应该

  1. 通知分享您将要执行此操作的上游的其他用户
  2. 按所示顺序执行此操作(设置新名称,然后删除旧名称)。
  3. #1的原因是那些用户需要调整。

    #2的原因主要只是效率:它避免了必须将对象重新复制到上游repo,从而删除了对分支删除的提交(大多数裸存储库都会这样做,并且大多数接受推送的存储库是裸的)