如何重命名本地Git分支?

git version-control git-branch candysol | 2020-02-02 19:35:06


我不想重命名远程分支,如“重命名本地和远程Git存储库的主分支”中所述。
如何重命名尚未推送到远程分支的本地分支?
如果您还需要重命名远程分支:
如何重命名Git本地和远程分支名称


本站提供【Linux疑难问题解决】50元起 ,【爬虫开发】200元起。欢迎咨询QQ:376667689 点击这里给我发消息



30 回答


13032


如果要重命名指向任何分支的分支,请执行以下操作:
git branch -m  

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

记住这一点的方法是
-m
表示“移动”(或
mv
),如果您在Windows或另一个不区分大小写的文件系统中,并且在名称中有任何大写改变,则需要使用代码>(4)< /代码> ,否则,Git将抛出分支已经存在的错误:
< PRE> >代码> [ 5 ] < /PRE> > BR>

2020-02-02 19:35:18
克莱茵拉罐

427


git branch -m old_branch_name new_branch_name

上面的命令将更改分支名称,但您必须非常小心地使用重命名的分支,因为它仍将引用与其关联的旧上游分支,如果有。
如果要在本地分支重命名为新分支名称(示例名称)后将某些更改推入主分支:
git push origin new_branch_name:master
(现在更改将转到主分支,但本地分支名称为新分支名称)
有关详细信息,请参阅“如何在Git中重命名本地分支名称”。

2020-02-02 19:35:18
asdasdsa

316


驯养您当前的分行:
git branch -m 

2020-02-02 19:35:18
蛋疼无须理由.TD不必掩饰

261


以下是重命名分支的步骤:
切换到需要重命名的分支
git branch -m 

git push origin :

git push origin :refs/heads/

编辑(12/01/2017):确保运行命令
git status
,并检查新创建的分支是否指向自己的ref,而不是旧的ref一个。如果找到对旧分支的引用,则需要使用:
git branch --unset-upstream

2020-02-02 19:35:18
淡淡的淡

194


重命名分支在分支完成后将非常有用。然后新的东西来了,你想在同一个分支中开发,而不是删除它并创建新的分支。
根据我的经验,要在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

2020-02-02 19:35:18
黑目君

109

目前的答案是正确的,但是这里有一些额外的信息:
可以用“-m”(移动)安全地重命名一个分支,但是必须小心'-m ',因为它强制重命名,即使已经存在具有相同名称的现有分支。以下是“git branch”手册页的摘录:
带有-m或-m选项,

将重命名为
。如果
有对应的reflog,则将其重命名为匹配
,并创建一个reflog条目以记住分支重命名。如果
  [4 ] < /代码> /PRE>存在,必须使用-m强制重命名发生。

2020-02-02 19:35:18
文川.真

88


一。重命名
如果它是您当前的分支,只需执行
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

2020-02-02 19:35:18
suija

73


我愚蠢地用连字符命名了一个分支,然后签出了master。我不想删除我的分支,我已经在其中工作了。
这两个都没用:
git checkout -dumb-name

git checkout -- -dumb-name

"
s,
>
s和
\
s也没用。
git branch -m
不起作用。
下面是我最后修复它的方法。进入工作副本的.git/refs/heads,找到文件名“-dumb name”,获取分支的哈希值。然后这将检查它,创建一个同名的新分支,并删除旧分支。
git checkout {hash}
git checkout -b brilliant-name
git branch -d -- -dumb-name

2020-02-02 19:35:18
撸撸

66


要在本地重命名分支:
git branch -m [old-branch] [new-branch]

现在您还必须在远程服务器上传播这些更改。
要推送已删除旧分支的更改:
git push origin :[old-branch]

要推送新分支的创建更改:
git push origin [new-branch]

2020-02-02 19:35:18
清凉

39


使用此命令重命名分支:
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

2020-02-02 19:35:18
小狐狸

37


高级Git用户可以使用以下命令手动重命名:
Rename the old branch under .git/refs/heads to the new name
Rename the old branch under .git/logs/refs/heads to the new name
Update the .git/HEAD to point to yout new branch name

2020-02-02 19:35:18
口嫌体正直

32


重命名本地分支。
如果您在要重命名的分支上:
git branch -m new-name

如果您在其他分支上:
git branch -m old-name new-name

删除旧名称远程分支并推送新名称本地分支。
git push origin :old-name new-name

为新名称本地重置上游分支分支。
切换到分支,然后:
git push origin -u new-name

或者要快速执行此操作,您可以使用以下三个步骤:
git branch -m old_branch new_branch  

>删除旧的远程分支
git push origin :old_branch  

>推送新分支,设置本地分支以跟踪新的远程分支:https://www.w3docs.com/snippets/git/how to rename git local and remote branches.html

2020-02-02 19:35:18
幻轩

25


这里有三个步骤:一个命令,您可以在终端内部调用该命令并更改分支名称。
git branch -m old_branch new_branch         # Rename branch locally
git push origin :old_branch # Delete the old branch
git push --set-upstream origin new_branch # Push the new branch, set local branch to track the new remote

如果您需要更多:逐步地,如何更改Git分支名称是一篇很好的文章。

2020-02-02 19:35:18
神代アリス

24


可能正如其他人提到的,这将是分支命名中的大小写不匹配。
如果您遇到这种情况,我可以猜测您是在Windows上,这也会导致您进入:
$ git branch -m CaseSensitive casesensitive
fatal: A branch named 'casesensitive' already exists.

然后您必须执行中间步骤:
$ git branch -m temporary
$ git branch -m casesensitive

无需更多操作。

2020-02-02 19:35:18
银Nya

23


remote
和GitHub上复制名称更改只需两个步骤:
步骤1
git branch -m old_branchname new_branchname

步骤2
git push origin :old_branchname new_branchname

2020-02-02 19:35:18
姫狩

22


试图明确回答问题(至少是标题)。
您也可以重命名本地分支,但会继续跟踪远程上的旧名称。
git branch -m old_branch new_branch
git push --set-upstream origin new_branch:old_branch

现在,当您运行
git push
时,远程
old_branch
ref使用本地
new_branch

更新,您必须知道并记住此配置。但是如果您没有远程分支名称的选择,但是您不喜欢它(哦,我的意思是,您有一个不喜欢它的很好的理由!)并且希望本地分支的名称更清晰。
使用fetch配置,甚至可以重命名本地远程引用。i、 e,具有指向分支的
refs/remote/origin/new_branch
ref指针,即实际上是
old_branch
on
origin
。但是,为了您的精神安全,我强烈建议您不要这样做。

2020-02-02 19:35:18
短门无希

20


如果您愿意使用SourceTree(我强烈建议您使用SourceTree),可以右键单击分支并选择“重命名”。

2020-02-02 19:35:18
aboli

19


在本地更改分支很容易…
如果您在要更改其名称的分支上,只需执行以下操作:
git branch -m my_new_branch

否则,如果您在
master
或任何其他要更改名称的分支上,只需执行以下操作:
git branch -m my_old_branch my_new_branch

另外,我创建了下面的图像以在命令行上显示此操作。在这种情况下,您在
master
分支上,例如:

2020-02-02 19:35:18
两仪那啥

19


要重命名当前分支(分离的头状态除外),也可以使用此别名:
[alias]
mvh = !sh -c 'git branch -m `git rev-parse --abbrev-ref HEAD` $1'

2020-02-02 19:35:18
阿鬼

17


另一个选择是完全不使用命令行。像SourceTree这样的Git GUI客户机消除了许多语法学习曲线/痛苦,这些问题导致这个问题成为堆栈溢出时查看最多的问题之一。
在SourceTree中,右键单击左侧“分支”窗格中的任何本地分支,然后选择“重命名…”。

2020-02-02 19:35:18
某冤

14

因为你不想把这个分支推到一个远程服务器上,这个例子很有用:
假设你有一个叫做“我的HealthFi饰子”的分支,你想把它重命名为“Studio-15.”BR>首先,你想改变你的本地分支。这再简单不过了:

git branch -m my-hot-feature feature-15

有关详细信息,您可以访问Git中的本地和远程重命名分支。

2020-02-02 19:35:18
the-evatri

12

如果您想更改本地分支的名称: >代码> [代码> < /PRE> > BR>如果您想更改其他分支的名称:
< PRE> >代码> [代码> < /PRE> > BR>如果您想将另一个分支的名称更改为已经存在的名称:

 >代码> [ 2 ]  < /PRE> > BR>注释:最后一个:命令是破坏性的,将重命名您的分支,但您将丢失具有该名称的旧分支和那些提交,因为分支名称必须是唯一的。

2020-02-02 19:35:18
嗜血盟约

11


一个简单的方法:
git branch -m old_branch new_branch         # Rename branch locally
git push origin :old_branch # Delete the old branch
git push --set-upstream origin new_branch # Push the new branch, set local branch to track the new remote

有关详细信息,请参阅此。

2020-02-02 19:35:18

10


如果要更改当前分支的名称,请运行:
git branch -m [old_branch] [new_branch]

如果要删除旧的远程分支,请运行:
git push origin :[old_branch]

如果要删除旧的远程分支并创建新的远程分支,请运行:
git push origin :old_branch new_branch

2020-02-02 19:35:18
宅女


对于Git GUI用户来说,这没什么简单的。
在Git GUI中,从菜单项branch:Rename创建的“重命名分支”对话框的下拉列表中选择分支名称,键入新名称,然后单击“重命名”。我已经突出显示了在哪里可以找到下拉列表。

2020-02-02 19:35:18
三千院、聆

GBIT分支重命名可以通过使用:
< >代码> [代码] > > BR> < PRE> >代码> [代码] > /PRE> > BR> M和-M之间的差异:
-M:如果您试图用-M.BR>用现有的分支名称重命名分支,则会出现错误,表示分支已经存在。你需要给出唯一的名字。
但是,
-M:这将帮助你用给定的名字强制重命名,即使它是存在的。所以现有的分支将完全覆盖它……BR>这是一个Git终端例子,

  [2 ] < /代码> < /PRE> > BR>

2020-02-02 19:35:18
紫の左手


前面所有的答案都是关于
git branch -m
的。当然,这很容易操作,但对我来说,可能很难记住另一个Git命令。所以我试着用我熟悉的命令来完成这项工作。是的,你可能猜到了。
我使用
git branch -b 
。如果您现在不想保存旧分支,可以执行
git branch -D 
来删除它。
我知道这可能有点乏味,但更容易理解和记住。希望对你有帮助。

2020-02-02 19:35:18
脑内彼女


那么使用:
git checkout

2020-02-02 19:35:18
丶子鸢


在PhpStorm中:
VCS
Git>分支。。。分支中的本地分支重命名

2020-02-02 19:35:18
两仪

-1


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

-m意味着将所有内容从[old branch]移到[new branch],并记住您可以将-m用于其他文件系统。

2020-02-02 19:35:18
狂炎一郎



Copyright © 2019-2020 zimt8.com
备案号:湘ICP备19012068号