How do I rename a local Git branch?
我不想重命名远程分支,如本地和远程Git存储库的重命名主分支中所述。
如何重命名未推送到远程分支的本地分支?
如果还需要重命名远程分支:如何重命名Git本地和远程分支名称
如果要在指向任何分支时重命名分支,请执行以下操作:
1 | git branch -m <newname> |
如果要重命名当前分支,可以执行以下操作:
1 | git branch -m <newname> |
记住这一点的一种方法是,
1 | git branch -m old_branch_name new_branch_name |
上面的命令将更改您的分支名称,但是您必须非常小心地使用重命名的分支,因为它仍然引用与之关联的旧上游分支(如果有)。
如果要在本地分支重命名为新分支名称(示例名称)后将某些更改推送到master中:
有关详细信息,请参阅"如何在Git中重命名本地分支名称"。
要重命名当前分支:
1 | git branch -m <newname> |
以下是重命名分支的步骤:
编辑(12/01/2017):确保运行命令
1 | git branch --unset-upstream |
一旦分支完成,重命名分支将非常有用。然后新的东西出现了,你希望在同一个分支中开发,而不是删除它并创建新的分支。
根据我的经验,要在Git中重命名本地和远程分支,应该执行以下步骤。
Quoting from Multiple States - Rename a local and remote branch in
git
1。重命名本地分支
如果您在要重命名的分支上:
1 | git branch -m new-name |
如果您在不同的分支机构:
1 | git branch -m old-name new-name |
2。删除旧名称远程分支并推送新名称本地分支
1 | git push origin :old-name new-name |
三。重置新名称本地分支的上游分支
1 | git push origin -u new-name |
到目前为止,答案是正确的,但以下是一些附加信息:
可以使用"-m"(移动)重命名分支,但必须小心,因为"-m"强制重命名,即使已有同名分支。以下是"Git Branch"手册页的摘录:
>使用-m或-m选项,
1。重命名
如果是你现在的分公司,就做吧
1 | git branch -m new_name |
如果它是您要重命名的另一个分支
1 | git branch -m old_name new_name |
2。跟踪新的远程分支
-如果您的分支被推送,那么在重命名之后,您需要将其从远程Git存储库中删除,并要求新的本地分支跟踪新的远程分支:
1 2 | git push origin :old_name git push --set-upstream origin new_name |
我愚蠢地以连字符开头命名了一个分支,然后签出了master。我不想删除我的分支,我在其中做过工作。
这些都不起作用:
以下是我最终修复它的方法。进入工作副本的.git/refs/heads,找到文件名"-dumb name",获取分支的哈希值。然后这将检查它,用一个健全的名称创建一个新的分支,并删除旧的分支。
1 2 3 | git checkout {hash} git checkout -b brilliant-name git branch -d -- -dumb-name |
要在本地重命名分支,请执行以下操作:
1 | git branch -m [old-branch] [new-branch] |
现在,您还必须在远程服务器上传播这些更改。
要推送已删除旧分支的更改,请执行以下操作:
1 | git push origin :[old-branch] |
推动新分支机构创建的变更:
1 | git push origin [new-branch] |
使用以下命令重命名分支:
1 | git branch -m [old_branch_name] [new_branch_name] |
如果已经有一个分支,并且要用该分支重命名,请使用:
1 | git rename -M [old_branch_name] [new_branch_name] |
有关帮助的详细信息,请在终端中使用以下命令:
1 | git branch --help |
或
1 | man git branch |
高级git用户可以使用以下方法手动重命名:
1 2 3 4 5 | 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 |
重命名分支:
1 | git branch -m old_branchname new_branchname |
这里,
1 | git branch --move old_branchname new_branchname |
如果要重命名当前分支,请使用以下命令:
1 | git branch -m new_branchname |
或
1 | git branch -move new_branchname |
如果要将这些更改移动到远程,请使用以下命令。
1 | git push origin :old_branchname new_branchname |
这将删除
1 | git push origin -u new_branchname |
这将重置
如果您在要重命名的分支上:
1 | git branch -m new-name |
如果您在不同的分支机构:
1 | git branch -m old-name new-name |
或者,为了快速实现这一点,您可以使用以下三个步骤:
#在本地重命名分支
1 | git branch -m old_branch new_branch |
#删除旧的远程分支
1 | git push origin :old_branch |
#推动新的分支,设置本地分支以跟踪新的远程
1 | git push --set-upstream origin new_branch |
参考:https://www.w3docs.com/snippets/git/how-to-rename-git-local-and-remote-branches.html
这里有三个步骤:一个可以在终端内部调用并更改分支名称的命令。
1 2 3 | 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分支名称是一篇很好的文章。
可能正如其他人所提到的,这将是分支命名中不匹配的情况。
如果你有这样的情况,我可以猜你在窗户上,这也会导致你:
1 2 | $ git branch -m CaseSensitive casesensitive fatal: A branch named 'casesensitive' already exists. |
然后你要做一个中间步骤:
1 2 | $ git branch -m temporary $ git branch -m casesensitive |
再也没有了。
试图具体回答这个问题(至少是题目)。
您也可以重命名本地分支,但在远程上继续跟踪旧名称。
1 2 | git branch -m old_branch new_branch git push --set-upstream origin new_branch:old_branch |
现在,当您运行
您必须知道并记住这个配置。但是,如果您没有选择远程分支名称的话,它会很有用,但是您不喜欢它(哦,我的意思是,您有一个非常好的理由不喜欢它!)更喜欢你当地分支机构的更清楚的名称。
使用fetch配置,甚至可以重命名本地远程引用。也就是说,有一个指向分支的
如果您愿意使用sourcetree(我强烈推荐),可以右键单击分支并选择"重命名"。
在本地更改分支非常容易…
如果您在要更改其名称的分支上,只需执行以下操作:
1 | git branch -m my_new_branch |
否则,如果您在
1 | git branch -m my_old_branch my_new_branch |
另外,我创建下面的图像在命令行上显示这个操作。在这种情况下,您在
要重命名当前分支(分离的头状态除外),还可以使用此别名:
1 2 | [alias] mvh = !sh -c 'git branch -m `git rev-parse --abbrev-ref HEAD` $1' |
另一种选择是根本不使用命令行。像sourcetree这样的git-gui客户机消除了许多语法学习曲线/症结,这些曲线/症结会导致像这样的问题成为堆栈溢出时最容易看到的问题之一。
在SourceTree中,右键单击左侧"分支"窗格中的任何本地分支,然后选择"重命名…"。
由于您不希望将分支推送到远程服务器,因此此示例将非常有用:
假设您有一个名为"我的热门功能"的现有分支,您希望将其重命名为"Feature-15"。
首先,您要更改本地分支机构。这不容易:
1 | git branch -m my-hot-feature feature-15 |
有关详细信息,您可以访问本地和远程重命名Git中的分支。
Git版本2.9.2
如果要更改您所在的本地分支机构的名称:
1 | git branch -m new_name |
如果要更改其他分支的名称:
1 | git branch -m old_name new_name |
如果要将其他分支的名称更改为已存在的名称:
1 | git branch -M old_name new_name_that_already_exists |
注意:最后一个命令是破坏性的,将重命名您的分支,但是您将丢失具有该名称的旧分支和那些提交,因为分支名称必须是唯一的。
如果要更改当前分支的名称,请运行:
1 | git branch -m [old_branch] [new_branch] |
如果要删除旧的远程分支,请运行:
1 | git push origin :[old_branch] |
如果要删除旧的远程分支并创建新的远程分支,请运行:
1 | git push origin :old_branch new_branch |
一种简单的方法:
1 2 3 | 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 |
更多信息,请参阅。
在
步骤1
步骤2
对于git-gui用户来说,这不可能简单得多。在git gui中,从菜单项branch:rename创建的"重命名分支"对话框的下拉列表中选择分支名称,键入新名称,然后单击"重命名"。我已经突出显示了在哪里可以找到下拉列表。
1 | git branch -m old_branch_name new_branch_name |
或
1 | git branch --move old_branch_name new_branch_name |
之前所有的答案都是关于
我用的是
我知道这可能有点乏味,但更容易理解和记忆。希望对你有帮助。
Git分支重命名可以使用以下方法完成:
-m和-m的区别是:
-M:如果你想用一个现存的分支名称重命名你的分支,使用-M。它将引发一个错误,说明分支已经存在。你需要给出唯一的名字。
但是,
-M:这将有助于您使用给定的名称强制重命名,即使它已经存在。所以一个现有的分支将用它完全覆盖…
下面是一个git终端示例,
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | mohideen@dev:~/project/myapp/sunithamakeup$ git branch master master0 new_master test * test1 mohideen@dev:~/project/myapp/sunithamakeup$ git branch -m test1 test fatal: A branch named 'test' already exists. mohideen@dev:~/project/myapp/sunithamakeup$ git branch -M test1 test mohideen@dev:~/project/myapp/sunithamakeup$ git branch master master0 new_master * test mohideen@dev:~/project/myapp/sunithamakeup$ |
如果你想:
- 重命名git存储库,运行:
git branch -m 。 - 删除旧分支机构:
git push origin: old-name new-name 。 - 使用:
git commit 提交- 然后使用:
git push origin new_branch_name:master 。
- 然后使用:
- 如果要检查状态,请使用:
git status 。 - 如果您想结账,请使用:
git checkout 。
在PhpStorm:
VCS→Git→分支…→本地分支→_您的分支u→重命名