如何重命名本地 Git 分支?

我不想重命名远程分支,如重命名本地和远程 Git 存储库的 master 分支中所述。

如何重命名尚未推送到远程分支的本地分支?

如果您还需要重命名远程分支:
如何重命名 Git 本地和远程分支名称

答案

如果要在指向任何分支时重命名分支,请执行以下操作:

git branch -m <oldname> <newname>

如果要重命名当前分支,可以执行以下操作:

git branch -m <newname>

一种记住方式是-m表示 “移动”(或mv ),这是您重命名文件的方式。

如果您使用的是 Windows 或其他不区分大小写的文件系统,并且名称中有大小写更改,则需要使用-M ,否则 git 会抛出分支已经存在的错误:

git branch -M <newname>
git branch -m old_branch_name new_branch_name

上面的命令将更改您的分支名称,但是使用重命名的分支必须非常小心,因为它仍将引用与其关联的旧的上游分支(如果有)。

如果要在将本地分支重命名为 new_branch_name(示例名称)后将一些更改推送到 master 中,请执行以下操作:

git push origin new_branch_name:master (现在更改将转到 master 分支,但您的本地分支名称为 new_branch_name)

有关更多详细信息,请参见 “ 如何在 Git 中重命名本地分支名称 ”。

重命名当前分支:

git branch -m <newname>

以下是重命名分支的步骤:

  1. 切换到需要重命名的分支
  2. git branch -m <new_name>
  3. git push origin :<old_name>
  4. git push origin <new_name>:refs/heads/<new_name>

编辑(2017 年 12 月 1 日):确保您运行命令git status并检查新创建的分支是否指向其自己的引用而不是较旧的分支。如果找到对较早分支的引用,则需要使用以下方法取消设置上游:

git branch --unset-upstream

分支完成后,重命名分支将很有用。然后会有新的东西出现,您想在同一个分支中进行开发,而不是删除它并创建一个新分支。

根据我的经验,要在 Git 中重命名本地和远程分支,您应该执行以下步骤。

多个州报价- 在 git 中重命名本地和远程分支

1. 重命名您的本地分支机构

如果您在分支上,则要重命名:

git branch -m new-name

如果您在另一个分支上:

git branch -m old-name new-name

2. 删除旧名称的远程分支,然后推送新名称的本地分支

git push origin :old-name new-name

3. 为新名称的本地分支重置上游分支

git push origin -u new-name

到目前为止,答案是正确的,但是这里有一些其他信息:

可以安全地用 '-m' 重命名分支(移动),但是使用 '-M' 时要小心,因为即使已经存在相同名称的分支,它也会强制重命名。以下是 “git-branch” 手册页的摘录:

使用 - m 或 - M 选项, <oldbranch>将重命名为<newbranch> 。如果<oldbranch>具有相应的引用日志,则将其重命名为与<newbranch>匹配,并创建引用日志条目以记住分支重命名。如果<newbranch>存在,则必须使用 - M 强制进行重命名。

1. 重命名

如果这是您当前的分支,只需执行

git branch -m new_name

如果是另一个分支,您要重命名

git branch -m old_name new_name

2. 跟踪新的远程分支

- 如果分支已被推送,则重命名后,您需要将其从远程 Git 存储库中删除,并要求您的新本地跟踪新的远程分支:

git push origin :old_name
git push --set-upstream origin new_name

我愚蠢地命名了一个以连字符开头的分支,然后签出 master。我不想删除我的分支,我已经在其中工作了。

这些都不起作用:

git checkout -dumb-name

git checkout -- -dumb-name

" s 和' S 和\小号都于事无补。 git branch -m不起作用。

这是我终于解决它的方法。进入工作副本的. git / refs / heads,找到文件名 “-dumb-name”,获取分支的哈希值。然后将其签出,创建一个名称正确的新分支,然后删除旧分支。

git checkout {hash}
git checkout -b brilliant-name
git branch -d -- -dumb-name

要在本地重命名分支:

git branch -m [old-branch] [new-branch]

现在,您还必须在远程服务器上传播这些更改。

推送已删除的旧分支的更改:

git push origin :[old-branch]

推动创建新分支的更改:

git push origin [new-branch]

使用以下命令重命名分支:

git branch -m [old_branch_name] [new_branch_name]

-m :重命名 / 移动分支。如果已经有一个分支,您将得到一个错误。

如果已经有一个分支,并且要使用该分支重命名,请使用:

git rename -M [old_branch_name] [new_branch_name]

有关帮助的更多信息,请在终端中使用以下命令:

git branch --help

要么

man git branch