enc*_*nce 256 git rename github
我只是使用重命名我的本地分支
git branch -m oldname newname
Run Code Online (Sandbox Code Playgroud)
但这只会重命名分支的本地版本.如何在github中重命名一个?
Ada*_*kin 277
如上所述,删除Github上的旧版并重新推送,尽管使用的命令比必要的更冗长:
git push origin :name_of_the_old_branch_on_github
git push origin new_name_of_the_branch_that_is_local
Run Code Online (Sandbox Code Playgroud)
简单.稍微解析一下命令,git push命令基本上是:
git push <remote> <local_branch>:<remote_branch>
Run Code Online (Sandbox Code Playgroud)
因此,在没有指定local_branch的情况下进行推送实质上意味着"不从我的本地存储库中取任何内容,并使其成为远程分支".我一直认为这完全是愚蠢的,但它就是这样做的.
编辑:从Git 1.7开始,有一种删除远程分支的替代语法:
git push origin --delete name_of_the_remote_branch
Run Code Online (Sandbox Code Playgroud)
编辑:正如@ void.pointer在评论中提到的那样
请注意,您可以组合2个推送操作:
git push origin :old_branch new_branch
这将删除旧分支并推送新分支.
这可以转换为一个简单的别名,它将远程原始分支和新分支名称作为参数,在~/.gitconfig
:
[alias]
branchm = "!git branch -m $2 $3 && git push $1 :$2 $3 -u #"
Run Code Online (Sandbox Code Playgroud)
用法:
git branchm origin old_branch new_branch
Run Code Online (Sandbox Code Playgroud)
请注意,shell命令中的位置参数在旧版(2.8之前版本)的git中存在问题,因此别名可能因git版本而异.有关详细信息,请参阅此讨
Tai*_*aiz 15
以下命令对我有用:
git push origin :old-name-of-branch-on-github
git branch -m old-name-of-branch-on-github new-name-for-branch-you-want
git push origin new-name-for-branch-you-want
Run Code Online (Sandbox Code Playgroud)
Abd*_*med 14
1. 重命名您的本地分支。
如果您在要重命名的分支上:
git branch -m new-name
Run Code Online (Sandbox Code Playgroud)
如果您在不同的分支:
git branch -m old-name new-name
Run Code Online (Sandbox Code Playgroud)
2. 删除旧名远程分支,推送新名本地分支。
git push origin :old-name new-name
Run Code Online (Sandbox Code Playgroud)
3. 重置新名称本地分支的上游分支。
切换到分支,然后:
git push origin -u new-name
Run Code Online (Sandbox Code Playgroud)
所以结论是:
git branch -m new-name
git push origin :old-name new-name
git push origin -u new-name
Run Code Online (Sandbox Code Playgroud)
Vi.*_*Vi. 13
只需删除旧分支并创建新分支即可.
示例(仅重命名远程分支):
git push origin :refs/heads/oldname
git push origin newname:refs/heads/newname
Run Code Online (Sandbox Code Playgroud)
您也可能应该重命名本地分支并更改推/拉位置的设置.
Haz*_*yan 12
我发现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
Run Code Online (Sandbox Code Playgroud)
如果您需要一步一步,您可以阅读这篇精彩的文章
avi*_*amg 11
就那么简单。为了在本地和远程重命名 Git 分支,请使用此代码片段(经过测试并且效果非常好):
git branch -m <oldBranchName> <newBranchName>
git push origin :<oldBranchName>
git push --set-upstream origin <newBranchName>
Run Code Online (Sandbox Code Playgroud)
解释:
Git 参考: 使用 -m 或 -M 选项,<oldbranch> 将重命名为 <newbranch>。如果 <oldbranch> 有相应的引用日志,则会将其重命名以匹配 <newbranch>,并创建一个引用日志条目来记住分支重命名。如果 <newbranch> 存在,则必须使用 -M 强制进行重命名。
Git参考: git push origin :experimental在origin存储库中找到与experimental匹配的ref(例如refs/heads/experimental),并将其删除。
Git 参考: --set-upstream对于每个最新或成功推送的分支,添加上游(跟踪)参考,由无参数 git-pull[1] 和其他命令使用。有关更多信息,请参阅 git-config [1] 中的branch.<name>.merge。
Von*_*onC 11
On GitHub side, you can use the new (Jan. 2021) "Support for renaming an existing branch"
Follow this tutorial: https://docs.github.com/en/github/administering-a-repository/renaming-a-branch
See "How do I rename branch on the GitHub website?".
This is a better approach, because renaming a branch that way (on github.com) will (source):