我不想重命名远程分支,如中所述 为本地和远程Git存储库重命名master分支。
如何重命名尚未推送到远程分支的本地分支?
我不想重命名远程分支,如中所述 为本地和远程Git存储库重命名master分支。
如何重命名尚未推送到远程分支的本地分支?
如果要在指向任何分支时重命名分支,请执行以下操作:
git branch -m <oldname> <newname>
如果要重命名当前分支,可以执行以下操作:
git branch -m <newname>
记住这个的方法是 -m
用于“移动”(或 mv
),这是你重命名文件的方式。
如果要在指向任何分支时重命名分支,请执行以下操作:
git branch -m <oldname> <newname>
如果要重命名当前分支,可以执行以下操作:
git branch -m <newname>
记住这个的方法是 -m
用于“移动”(或 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
并检查新创建的分支是否指向自己的ref而不是旧的分支。如果找到对旧分支的引用,则需要使用以下命令取消设置上游:
git branch --unset-upstream
分支完成后,重命名分支将非常有用。然后新的东西即将到来,你想在同一个分支中开发而不是删除它并创建新的分支。
根据我的经验,要在Git中重命名本地和远程分支,您应该执行以下步骤。
如果您在分支上,则要重命名:
git branch -m new-name
如果你在不同的分支:
git branch -m old-name new-name
git push origin :old-name new-name
git push origin -u new-name
到目前为止的答案是正确的,但这里有一些额外的信息: 可以使用'-m'(移动)重命名分支,但必须小心,因为'-M'强制重命名,即使已存在具有相同名称的现有分支。以下是'git-branch'手册页的摘录:
使用-m或-M选项,
<oldbranch>
将重命名为<newbranch>
。如果<oldbranch>
有一个相应的reflog,它被重命名为匹配<newbranch>
,并创建一个reflog条目来记住分支重命名。如果<newbranch>
存在,-M必须用于强制重命名发生。
如果它是您当前的分支,那就做
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和 \
s也没有帮助。 git branch -m
不起作用。
这是我最终修复它的方式。进入工作副本的.git / refs / heads,找到文件名“-dumb-name”,获取分支的哈希值。然后这将检查出来,创建一个具有合理名称的新分支,并删除旧分支。
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]
推动创建新分支的更改:
git push origin [new-branch]