【问题标题】:Change a branch name in a Git repo在 Git 存储库中更改分支名称
【发布时间】:2011-04-21 11:37:38
【问题描述】:

如何重命名 Git 存储库中的现有分支?

我希望当前分支有一个新名称。

【问题讨论】:

  • 接受@Alex 的答案或说出你不想接受的原因。
  • @CharlieParker 这可能与这是亚历克斯唯一的问题有关,并且他可能从那以后就没有登录过:“最后一次看到 2011 年 2 月 3 日 21:29”跨度>
  • @J.B. OMG,你是说他可能出事了???!!!!!!!!!
  • 能否接受对此高度投票的答案?

标签: git git-branch


【解决方案1】:

如果您当前在要重命名的分支上:

git branch -m new_name 

否则:

git branch -m old_name new_name 

您可以通过以下方式检查:

git branch -a

如您所见,仅更改了本地名称 现在,要在遥控器中更改名称,您必须这样做:

git push origin :old_name

这会删除分支,然后使用新名称上传:

git push origin new_name

来源:https://web.archive.org/web/20150929104013/http://blog.changecong.com:80/2012/10/rename-a-remote-branch-on-github

【讨论】:

  • 我认为这是正确的答案,Richard Feam 高度投票的答案仅涵盖本地 repo,这个涵盖远程。
  • 同意上面的评论,这个答案在我的情况下更完整。此外,当我在完成此答案中提到的所有步骤后将其他提交推送到远程分支时,git 尝试再次推送到 old_name 分支。幸运的是,git 还在命令行中提供了一个修复:git-branch --unset-upstream。在此之后,所有推送的提交都转到了new_name 远程分支。
  • 请注意,这样您就失去了使用git push 推送的能力,因为您会发出警告,说Your branch is based on 'old_name, but the upstream is gone. A git push -u origin new_name 解决它。
【解决方案2】:

假设您当前在要重命名的分支上:

git branch -m newname

这在git-branch 的手册中有记录,您可以使用它来查看

man git-branch

git help branch

具体来说,命令是

git branch (-m | -M) [<oldbranch>] <newbranch>

参数在哪里:

   <oldbranch>
       The name of an existing branch to rename.

   <newbranch>
       The new name for an existing branch. The same restrictions as for <branchname> apply.

&lt;oldbranch&gt; 是可选的,如果你想重命名当前分支。

【讨论】:

  • 或者git branch -m other-branch renamed-other-branch如果你不是。
  • 另外,如果您已经将旧分支推送到远程,您可以使用git push origin :branchname 将其删除。这将允许您推送新的并删除旧的,实质上是在遥控器上重命名它。
  • @mipadi,它会创建新的分支,不要删除之前的分支。
  • git branch (-m | -M) [] 对我不起作用,给出语法错误。
  • @MohammedArif 使用-m,它重命名旧分支,所以它确实删除前一个分支。
猜你喜欢
  • 2014-11-27
  • 1970-01-01
  • 1970-01-01
  • 2018-11-14
  • 2019-09-06
  • 2013-11-25
  • 2015-09-30
  • 2016-12-19
  • 1970-01-01
相关资源
最近更新 更多