如何重命名本地Git分支?

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

相关:

4730886 次浏览

重命名当前分支:

git branch -m <newname>

在指向任何分支时重命名分支:

git branch -m <oldname> <newname>

-m--move的缩写。


要推送本地分支并重置上游分支:

git push origin -u <newname>

要删除远程分支:

git push origin --delete <oldname>

创建git rename别名:

git config --global alias.rename 'branch -m'

在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(现在更改将转到主分支,但您的本地分支名称new_branch_name)

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

重命名当前分支:

git branch -m <newname>

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

我们可以用'-m'(移动)安全地重命名分支,但必须小心'-M',因为它会强制重命名,即使已经有一个同名的现有分支。以下是“git-分支”手册页的摘录:

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

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

这两种方法都不奏效:

git checkout -dumb-name

git checkout -- -dumb-name

"'\也没有帮助。

这是我最终修复它的方法。进入你的工作副本的. git/refs/head,找到文件名“-duth-name”,获取分支的哈希值。然后这将检查它,用一个正常的名称创建一个新分支,并删除旧分支。

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

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

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

另一种选择是根本不使用命令行。资源树等Git GUI客户端消除了大部分语法学习曲线/痛苦,这些问题导致像这样的问题在Stack Overflow上被查看最多。

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

使用此命令重命名分支:

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

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

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

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

git branch --unset-upstream

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

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

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

然后你需要做一个中间步骤:

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

没有别的了。

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

在本地重命名分支:

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

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

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

git push origin :[old-branch]

要推送创建新分支的更改:

git push origin [new-branch]

由于您不想将分支推送到远程服务器,因此此示例将很有用:

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

首先,您想更改您的本地分支。这再简单不过了:

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

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

1.重新命名

如果这是你目前的分支机构,就这样做

git branch -m new_name

如果您想重命名另一个分支

git branch -m old_name new_name

2.跟踪一个新的远程分支

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

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

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

git branch -m old_branch new_branch         # Rename branch locallygit push origin :old_branch                 # Delete the old branchgit push --set-upstream origin new_branch   # Push the new branch, set local branch to track the new remote

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

试着回答这个问题(至少是标题)。

您也可以重命名当地分支,但继续跟踪遥控器上的旧名称。

git branch -m old_branch new_branchgit push --set-upstream origin new_branch:old_branch

现在,当您运行git push时,远程old_branch引用将更新为您的本地new_branch

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

使用获取配置,您甚至可以重命名本地远程引用。即,具有指向分支的refs/remote/origin/new_branch ref指针,实际上是origin上的old_branch。然而,为了您的思想安全,我强烈反对这样做。

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

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

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

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

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

git branch -m [old_branch] [new_branch]

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

git push origin :[old_branch]

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

git push origin :old_branch new_branch

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

在此处输入图片描述

更改分支当地很容易…

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

git branch -m my_new_branch

否则,如果您在master任何其他分支上,而不是您想要更改名称的名称,只需执行以下操作:

git branch -m my_old_branch my_new_branch

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

本地更改分支名称

如果你想:

  • 重命名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

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

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

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

Git分支重命名可以使用:

  1. git branch -m oldBranch newBranch

  2. git branch -M oldBranch ExistingBranch

-m-M的区别:

-m:如果您尝试使用-m使用现有分支名称重命名分支。这将引发一个错误,说分支已经存在。您需要提供唯一的名称。

但是,

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

这里有一个Git终端示例,

mohideen@dev:~/project/myapp/sunithamakeup$ git branchmastermaster0new_mastertest* test1mohideen@dev:~/project/myapp/sunithamakeup$ git branch -m test1 testfatal: A branch named 'test' already exists.mohideen@dev:~/project/myapp/sunithamakeup$ git branch -M test1 testmohideen@dev:~/project/myapp/sunithamakeup$ git branchmastermaster0new_master* testmohideen@dev:~/project/myapp/sunithamakeup$

在PhpStorm中:

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

一个简单的方法来做到这一点:

git branch -m old_branch new_branch         # Rename branch locallygit push origin :old_branch                 # Delete the old branchgit push --set-upstream origin new_branch   # Push the new branch, set local branch to track the new remote

有关更多信息,请参阅这个

  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

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

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

重命名本地Git分支

只需三个步骤即可在remote和GitHub上复制名称更改:

步骤1git branch -m old_branchname new_branchname

步骤2git push origin :old_branchname new_branchname

步骤3git push --set-upstream origin new_branchname

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

-m表示将所有文件从[old-分支]移动到[new-分支],并记住您可以将-M用于其他文件系统。

所有你需要做的是三个步骤:

  1. .git/refs/heads下的旧分支提供新名称
  2. .git/logs/refs/heads下的旧分支提供新名称
  3. 更新.git/HEAD以导致您的新分支名称

实际上你有三个步骤,因为本地分支在服务器上有一个副本,所以我们在服务器上的两个步骤上有一个本地步骤:

  1. 重命名本地:只需使用以下命令重命名当前分支,即使您已检查过:
    git branch -m <old-branch-name> <new-branch-name>
  2. 删除服务器一:使用以下命令删除服务器上的旧名称分支:
    git push <remote-name[origin by default]> :<old-branch-name>
  3. 推一个新的:现在是时候推送服务器上命名的新分支了:
    git push -u <new-branch-name>

2022年更新

在我们开始之前,确保您已经选择了要重命名的分支:

git checkout old-name

如果您想查看所有本地分支,请使用以下命令:

git branch --list

当你完全清楚的时候,遵循以下步骤:

  1. 使用Git rename分支命令需要您在命令中添加-m选项:

    git branch -m new-name
  2. 您还可以使用以下两个命令从另一个分支重命名本地分支:

    git checkout master
    git branch -m old-name new-name
  3. 最后,此命令将列出所有本地和远程分支,以验证它是否已重命名:

    git branch -a

虽然不可能直接重命名远程分支,但重命名分支的过程涉及以下两个简单步骤:

  1. 首先,您需要按照前面的步骤重命名本地分支。2.然后删除分支,推送新的分支。您可以使用以下命令轻松完成此操作:

     git push origin :old-name new-name
  2. 重置新本地分支的上游分支,您将全部设置:

    git push origin -u new-name

在Visual Studio中:

Git→管理分支→分支→your_repositoryyour_branch→重命名

要重命名github桌面版上的本地分支,请单击当前分支选项卡(当前存储库右侧),右键单击要重命名的分支,然后单击重命名。然后将提示您弹出一个可以重命名的弹出窗口。

输入图片描述

  1. 重命名本地分支:

    git branch -m <old_branch_name> <new_branch_name>

  2. 推新分支:

    git push --set-upstream origin <new_branch_name>

将当前分支重命名为新的分支名称

git branch -m <new_name>

这将为您正在使用的当前分支设置新名称。

重新命名另一个分支

git branch -m <old_name> <new_name>

在这里,您必须提供旧的分支名称和新的分支名称。

来自Git本身的官方命令。试试这个。它对我有用。

默认分支已重命名!{oldBrandchName}现在被命名为{NewBrandchName}如果您有一个本地克隆,您可以通过运行以下命令来更新它。

git branch -m {oldBranchName} {NewBranchName}git fetch origingit branch -u origin/{NewBranchName} {NewBranchName}git remote set-head origin -a