如何重命名本地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分支重命名可以通过使用
-
git branch -m oldBranch newBranch
-
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$