我刚刚使用
重命名了我的本地分支git branch -m oldname newname
但这只会重命名分支的本地版本。如何重命名 github 中的那个?
答案 0 :(得分:266)
如前所述,删除Github&上的旧版本。重新推送,尽管使用的命令比必要的更冗长:
git push origin :name_of_the_old_branch_on_github
git push origin new_name_of_the_branch_that_is_local
简单。稍微解析一下命令,git push命令基本上是:
git push <remote> <local_branch>:<remote_branch>
因此,在没有指定local_branch的情况下进行推送实质上意味着“不从我的本地存储库中取任何内容,并使其成为远程分支”。我一直认为这完全是愚蠢的,但它就是这样做的。
编辑:从Git 1.7开始,还有一种删除远程分支的替代语法:
git push origin --delete name_of_the_remote_branch
编辑:正如评论
中的@ void.pointer所述请注意,您可以组合2个推送操作:
git push origin :old_branch new_branch
这将删除旧分支并推送新分支。
这可以变成一个简单的别名,在~/.gitconfig
中将远程原始分支和新分支名称作为参数:
[alias]
branchm = "!git branch -m $2 $3 && git push $1 :$2 $3 -u #"
用法:
git branchm origin old_branch new_branch
请注意,shell命令中的位置参数在旧版(2.8之前版本)的git中存在问题,因此别名可能会因git版本而异。有关详细信息,请参阅this discussion。
答案 1 :(得分:13)
以下命令对我有用:
0
答案 2 :(得分:13)
只需删除旧分支并创建新分支。
示例(仅重命名远程分支):
git push origin :refs/heads/oldname
git push origin newname:refs/heads/newname
您也可能应该重命名本地分支并更改推/拉位置的设置。
答案 3 :(得分:10)
在 GitHub 端,您可以使用新的(2021 年 1 月)“Support for renaming an existing branch”
遵循本教程:https://docs.github.com/en/github/administering-a-repository/renaming-a-branch
参见“How do I rename branch on the GitHub website?”。
这是一种更好的方法,因为以这种方式重命名分支(在 github.com 上)将 (source):
答案 4 :(得分:9)
我发现3命令如何更改你的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
如果您需要一步一步,可以阅读这篇精彩的文章
答案 5 :(得分:3)
你可以在没有终端的情况下做到这一点,你只需要用新名称创建一个分支,然后删除旧的分支。你可以使用这篇文章来做到这一点。
答案 6 :(得分:3)
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 new-name
git push origin :old-name new-name
git push origin -u new-name
答案 7 :(得分:1)
这对我有用:
1。)首先创建新分支: git push github newname:refs / heads / newname
2.。)在github网站上,转到设置并将默认分支更改为新名称
3.)删除oldname git push github --delete oldname
答案 8 :(得分:1)
本文介绍了如何轻松完成这项工作。
1。要重命名本地Git分支,我们可以使用Git branch -m命令修改名称:
git branch -m feature1 feature2
2。如果您只是在寻找重命名远程Git分支的命令,那就是“
git push -u origin feature2:feature3
在执行此操作之前,请检查分支上是否有标签。您可以使用git tag
。
答案 9 :(得分:1)
在我的情况下,我需要一个额外的命令
的 git branch --unset-upstream
强>
让我重命名的分支推进到origin newname
。
(为了便于打字),我先git checkout oldname
然后运行以下命令:
git branch -m newname
git push origin :oldname
或 git push origin --delete oldname
的 git branch --unset-upstream
强>
git push -u origin newname
或 git push origin newname
此额外步骤可能只是必要的,因为我(倾向于)通过git push
-u
origin oldname
在我的分支上设置远程跟踪。这样,当我oldname
签出时,我随后只需要git push
而不是git push origin oldname
如果我不在git branch --unset-upstream
之前使用git push origin newbranch
命令,git 重新创建 oldbranch
并推送{{1}转到newbranch
- 打败我的意图。
答案 10 :(得分:0)
这是 Hazarapet Tunanyan's 答案中的附加条件。
git branch -m old_branch new_branch # Rename branch locally
git push origin :old_branch # Delete the old branch
# You might be getting an error doing the above step, skip to the next step
git push --set-upstream origin new_branch # Push the new branch, set local branch to track the new remote
您在执行 git push origin :old_branch
时出错,因为您尝试删除的 old_branch 可能是默认分支。
只需执行其他 2 个步骤,然后转到 github 并从设置中更改默认分支,即可执行 git push origin :old_branch
。
答案 11 :(得分:0)
就这么简单。为了在本地和远程重命名git分支,请使用以下代码段(经过测试,可像超级按钮一样工作):
git branch -m <oldBranchName> <newBranchName>
git push origin :<oldBranchName>
git push --set-upstream origin <newBranchName>
说明:
重命名步骤:
Git参考: 使用-m或-M选项,将重命名为。如果 有一个相应的reflog,它被重命名为match ,并创建一个reflog条目以记住该分支 重命名。如果存在,则必须使用-M强制重命名 发生。
删除步骤:
Git参考: git push origin:experimental 查找与实验中的内容匹配的参考 原始存储库(例如refs / heads / experimental),然后将其删除。
更新远程回购步骤(用于跟踪的上游参考):
Git参考: -set-upstream 对于每个最新的或成功推送的分支,添加上游(跟踪)引用,该引用由无参数使用 git-pull [1]和其他命令。有关更多信息,请参见 分支..合并到git-config [1]中。
答案 12 :(得分:0)
以下命令在本地重命名分支,删除远程位置上的旧分支并推送新分支,设置本地分支以跟踪新远程:
git branch -m old_branch new_branch
git push origin :old_branch
git push --set-upstream origin new_branch
答案 13 :(得分:0)
另一种方法是重命名以下文件:
.git/refs/head/[branch-name]
重命名为.git/refs/head/new-branch-name
.git/refs/remotes/[all-remote-names]/[branch-name]
重命名为.git/refs/remotes/[all-remote-names]/new-branch-name
重命名 head&amp;遥控器在您的本地PC上和在起源/远程服务器上
如果您当前的分支名称包含斜杠(/
),git将创建如下目录:
当前分支名称: "awe/some/branch"
.git/refs/head/awe/some/branch
.git/refs/remotes/[all-remote-names]/awe/some/branch
希望分支名称: "new-branch-name"
branch
.git/refs/*/awe/some/
文件
.git/refs/head/
。branch
.git/refs/remotes/*/awe/some/
个文件
.git/refs/remotes/*/
。branch
文件重命名为new-branch-name
。.git/refs/head/new-branch-name
.git/refs/remotes/[all-remote-names]/new-branch-name
awe/some/branch
重命名为new-branch-name
(本地和远程!)信息: 这种方式可能不是最好的,但它仍适用于可能遇到其他方式问题的人
答案 14 :(得分:0)
答案 15 :(得分:-1)
在Git分支上,运行:
std-c++11
这将修改您本地存储库中的分支名称:
git branch -m old_name new_name
这会将修改后的名称推送到远程服务器并删除旧分支:
git push origin :old_name new_name
它设置本地分支以跟踪远程分支。
这解决了这个问题。
答案 16 :(得分:-2)
(('asd',), {'level': 0}) generated docstring, access by test.__doc__
((7, 99), {'par': None}) generated docstring, access by whatever_method.__doc__
git push origin head
git branch -m old-branch-name new-branch-name