it-swarm.cn

如何重命名本地Git分支?

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

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

如果你需要重命名 remote branch:
如何重命名Git本地和远程分支名称

7584
Forrest

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

git branch -m <oldname> <newname>

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

git branch -m <newname>

一种记住这一点的方法是-m用于“move”(或mv),这就是重命名文件的方式。

12186
siride
git branch -m old_branch_name new_branch_name

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

如果要在将本地分支重命名为new_branch_name(示例名称)后将某些更改推送到master中:

git Push Origin new_branch_name:master(现在更改将转到主分支,但您的本地分支名称是new_branch_name)

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

387
Madhan Ayyasamy

要重命名当前分支:

git branch -m <newname>
283
Jonathan

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

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

EDIT(12/01/2017): 确保运行命令git status并检查新创建的分支是否指向自己的ref而不是旧的分支。如果找到对旧分支的引用,则需要使用以下命令取消设置上游:

git branch --unset-upstream
226
Milind Anantwar

分支完成后,重命名分支将非常有用。然后新的东西即将到来,你想在同一个分支中开发而不是删除它并创建新的分支。

根据我的经验,要在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
161
trungk18

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

可以使用'-m'(移动)重命名分支,但必须小心,因为'-M'强制重命名,即使已存在具有相同名称的现有分支。以下是'git-branch'手册页的摘录:

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

93
Vanchev

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
77
Oss

我愚蠢地命名一个以连字符开头的分支,然后检查出主人。我不想 删除 我的分支,我有工作。

这些都没有奏效:

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
66
Samuel Meacham

要在本地重命名分支:

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

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

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

git Push Origin :[old-branch]

推动创建新分支的更改:

git Push Origin [new-branch]
60
aliasav

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

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
33
Hafiz Shehbaz Ali

高级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
31
Jethik

重命名分支:

git branch -m old_branchname new_branchname

这里-m选项的长名称是--move。所以我们也可以使用:

git branch --move old_branchname new_branchname

如果要重命名当前分支,请使用以下命令:

git branch -m new_branchname

要么

git branch -move new_branchname

如果要将这些更改移动到远程,请使用以下命令。

git Push Origin :old_branchname new_branchname

这将删除old_branchname远程分支并推送new_branchname本地分支。

git Push Origin -u new_branchname

这将重置new_branchname本地分支的上游分支。

30
Ajmal sha
  1. 重命名您当地的分支机构。

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

git branch -m new-name

如果你在不同的分支:

git branch -m old-name new-name
  1. 删除旧名远程分支并按下新名称本地分支。

git Push Origin :old-name new-name

  1. 重置新名称本地分支的上游分支。切换到分支,然后:

git Push Origin -u new-name

或者为了快速做到这一点,您可以使用以下3个步骤:

#在本地重命名分支

git branch -m old_branch new_branch  

#删除旧的远程分支

git Push Origin :old_branch  

#推新分支,设置本地分支以跟踪新的远程

git Push --set-upstream Origin new_branch   

Referance: https://www.w3docs.com/snippets/git/how-to-rename-git-local-and-remote-branches.html

26
badarshahzad

以下是三个步骤:您可以在终端内调用并更改分支名称的命令。

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分支名称是一篇很好的文章。

22
Hazarapet Tunanyan

可能正如其他人所提到的,这将是分支命名中的一种情况不匹配。

如果你有这样的情况,我猜你在Windows上也会引导你:

$ git branch -m CaseSensitive casesensitive
fatal: A branch named 'casesensitive' already exists.

然后你必须做一个中间步骤:

$ git branch -m temporary
$ git branch -m casesensitive

而已。

21
P4C

试图专门回答这个问题(至少标题)。

您还可以重命名 local branch,但会一直跟踪遥控器上的旧名称。

git branch -m old_branch new_branch
git Push --set-upstream Origin new_branch:old_branch

现在,当您运行git Push时,远程old_branch ref将使用您的本地new_branch进行更新。

你必须知道并记住 这个配置。但是如果你没有远程分支名称的选择,但你不喜欢它(哦,我的意思是,你有一个 非常好 有理由不喜欢它,它会很有用!)并且更喜欢您当地分行的更清晰的名称。

使用fetch配置,您甚至可以重命名本地远程引用。即,具有指向分支的refs/remote/Origin/new_branch ref指针,实际上是Origin上的old_branch。但是,为了您的安全,我强烈反对这一点。

19
Pierre-Olivier Vares

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

enter image description here

17
Marcin Szymczak

要重命名当前分支(分离HEAD状态除外),您还可以使用此别名:

[alias]
    mvh = !sh -c 'git branch -m `git rev-parse --abbrev-ref HEAD` $1'
16
dentuzhik

更改分支 local 非常容易......

如果您在分支机构上想要更改名称,只需执行以下操作:

git branch -m my_new_branch

否则,如果您在master 任何其他分支 除了您想要更改名称的分支之外,只需执行以下操作:

git branch -m my_old_branch my_new_branch

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

Change branch name locally

16
Alireza

另一种选择是根本不使用命令行。 Git GUI客户端,例如 SourceTree 带走了大部分语法学习曲线/痛苦,导致这样的问题成为Stack Overflow中观看次数最多的问题。

在SourceTree中,右键单击左侧“分支”窗格中的任何本地分支,然后选择“重命名...”。

15
Steve Chambers

由于您不希望将分支推送到远程服务器,因此该示例将非常有用:

假设您有一个名为“my-hot-feature”的现有分支,并且您想将其重命名为“feature-15”。

首先,您要更改本地分支。这可能不容易:

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

有关更多信息,您可以访问在Git中本地和远程重命名分支

13
Tanah

Git版本2.9.2

如果要更改您所在的本地分支的名称:

git branch -m new_name

如果要更改其他分支的名称:

git branch -m old_name new_name

如果要将其他分支的名称更改为已存在的名称:

git branch -M old_name new_name_that_already_exists

注意:最后一个命令是破坏性的,并且会重命名你的分支,但是你将丢失具有该名称和那些提交的旧分支,因为分支名称必须是唯一的。

10
nikkypx

如果要更改当前分支的名称,请运行:

git branch -m [old_branch] [new_branch]

如果要删除旧的远程分支,请运行:

git Push Origin :[old_branch]

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

git Push Origin :old_branch new_branch
8
Arif

一个简单的方法:

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

有关更多信息,请参阅 this

8
Nomade

只需两步即可在remote和GitHub上复制名称中的更改:

第1步git branch -m old_branchname new_branchname

第2步git Push Origin :old_branchname new_branchname

7
Harry_pb
git branch -m old_branch_name  new_branch_name

要么

git branch --move old_branch_name new_branch_name
4
user128364

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

Rename a local Git branch

4
user3070485

以前的所有答案都在讨论git branch -m。当然,它很容易操作,但对我来说,记住另一个Git命令可能有点困难。所以我试着通过我熟悉的命令完成工作。是的,你可能猜到了。

我用git branch -b <new_branch_name>。如果您现在不想保存旧分支,则可以执行git branch -D <old_branch_name>将其删除。

我知道它可能有点乏味,但它更容易理解和记忆。我希望它对你有所帮助。

3
Dai Kaixian

Git分支重命名可以通过使用:

  1. git branch -m oldBranch newBranch

  2. git branch -M oldBranch ExistingBranch

-m -M 之间的区别:

-m: 如果您尝试使用 -m 重命名现有分支名称的分支。它会引发一个错误,说分支已经存在。你需要给出唯一的名字。

但,

-M: 这将帮助您强制使用给定名称重命名,即使它存在。所以现有的分支将完全用它覆盖......

这是 Git终端示例,

[email protected]:~/project/myapp/sunithamakeup$ git branch
  master
  master0
  new_master
  test
* test1
[email protected]:~/project/myapp/sunithamakeup$ git branch -m test1 test
fatal: A branch named 'test' already exists.
[email protected]:~/project/myapp/sunithamakeup$ git branch -M test1 test
[email protected]:~/project/myapp/sunithamakeup$ git branch
  master
  master0
  new_master
* test
[email protected]:~/project/myapp/sunithamakeup$
3
Silent Spectator

如果你想:

  • 重命名Git存储库,运行:git branch -m <oldname> <newname>
  • 删除旧分支:git Push Origin: old-name new-name
  • 使用以下方式提交:git commit <newname>
    • 然后推送使用:git Push Origin new_branch_name:master
  • 如果要检查状态,请使用:git status
  • 如果您想结账,请使用:git checkout
2
Vineet Jain

在PhpStorm中:

VCS→Git→分支......→本地分支→ _your_branch_ →重命名

1
AlexSi

重命名当前分支

git branch -m <newbranchname>

要么

git branch -m oldbranchname newbranchname
0
panthari