如何重命名本地Git分支?

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

我如何重命名没有被推送到远程分支的本地分支?

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

git branch -m <oldname> <newname> 

如果你想重命名当前分支,你可以这样做:

 git branch -m <newname> 

记住这个的一个方法是-m是“move”(或mv ),这是你如何重命名文件。

 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> 

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

 1. switch to branch which needs to be renamed 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并检查新创build的分支是指向自己的裁判,而不是旧的。 如果您发现旧分支的引用,则需要使用以下命令取消设置上游:

 git branch --unset-upstream 

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

根据我的经验,要在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>具有相应的reflog,则将其重命名为匹配<newbranch> ,并创buildreflog条目以记住分支重命名。 如果存在<newbranch> ,则必须使用-M来强制重命名。

1.重命名

如果这是你现在的分支,就这样做

  git branch -m new_name 

如果它是你想重新命名的另一个分支

  git branch -m old_name new_name 

跟踪一个新的远程分支

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

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

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

这些都没有工作:

git checkout -dumb-name

git checkout -- -dumb-name

" s和s也没有帮助git branch -m不起作用。

这是我最终如何修复它。 进入你的工作副本的.git / refs / heads,find文件名“-dumb-name”,得到分支的散列。 然后这将检查出来,用一个健全的名字,build立一个新的分支,并删除旧的。

 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] 

推动新分公司创build的变化:

 git push origin [new-branch] 

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

 git branch -m [old_branch_name] [new_branch_name] 

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

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

  git rename -M [old_branch_name] [new_branch_name] 

有关帮助的更多信息,请在terminal中使用此命令:

 git branch --help 

要么

 man git branch 

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

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

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

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

那么你必须做一个中间步骤:

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

而已。

试图回答这个问题(至less是标题)。

您也可以重命名本地分支,但不断跟踪远程的旧名称。

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

现在,当你运行git push ,远程old_branch ref会被你本地的new_branch更新。

你必须知道并记住这个configuration。 但是,如果你没有select远程分支名称,但是你不喜欢它(哦,我的意思是,你有一个很好的理由不喜欢它),而且更喜欢清晰名称为您的本地分支。

使用获取configuration进行播放,甚至可以重命名本地远程引用。 即有一个refs/remote/origin/new_branch引用指向该分支,这实际上是old_branch origin 。 不过,为了您的头脑安全,我非常反感。

另一种select是根本不使用命令行。 像SourceTree这样的Git GUI客户端带走了大量的语法学习曲线/痛苦,导致这样的问题成为Stack Overflow中最常见的问题之一。

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

这里有三个步骤:一个命令,你可以在你的terminal内调用并更改分支名称。

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

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

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

既然你不想将分支推送到远程服务器,这个例子将是有用的:

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

首先,你想改变你的本地分支。 这并不容易:

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

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

如果你想使用SourceTree (我强烈build议),你可以右键单击你的分支,并select“重命名”。

在这里输入图像描述

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 branch -m [old_branch] [new_branch] 

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

 git push origin :[old_branch] 

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

 git push origin :old_branch new_branch 

本地更改分支很容易!

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

 git branch -m my_new_branch 

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

 git branch -m my_old_branch my_new_branch 

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

在本地更改分支名称

如果你想重命名git repository-
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命令将分支重命名为exmation branch name,那么会引发一个错误,分支已经存在。 你需要给出独特的名字。

但,

-M:这将帮助你强制重命名,即使它存在。 所以现有的分支将完全覆盖它…

这里是gitterminal的例子,

 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$