tag分支 - git远程分支重命名




如何重命名本地Git分支? (20)

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

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


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

  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 ://www.w3docs.com/snippets/git/how-to-rename-git-local-and-remote-branches.html


git branch重命名可以通过使用来完成

  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$ 

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         # 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. 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并检查新创建的分支是否指向自己的ref而不是旧的。 如果找到对旧分支的引用,则需要使用以下命令取消设置上游:

git branch --unset-upstream

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

根据我的经验,要在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> ,并创建reflog条目以记住分支重命名。 如果<newbranch>存在,则必须使用-M强制重命名。


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

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

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

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

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

而已。


本地更改分支很容易......

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

git branch -m my_new_branch

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

git branch -m my_old_branch my_new_branch

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


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


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

git branch -m <oldname> <newname>

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

git branch -m <newname>

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


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


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

这些都没有奏效:

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

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

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

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

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

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


简单的方法:

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


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

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

要重命名当前分支:

git branch -m <newname>

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

要么

git branch --move old_branch_name new_branch_name




git-branch