我如何重命名尚未被推到远程仓库的本地分支 ?
相关:
重命名本地和远程 Git 仓库的主分支 ?
我如何重命名尚未被推到远程仓库的本地分支 ?
相关:
重命名本地和远程 Git 仓库的主分支 ?
当前回答
我愚蠢地命名了一个分支,从连字符开始,然后检查了主人。我不想删除我的分支,我在里面有工作。
这两种办法都行不通:
git 检出 - dumb- name
git 检出 -- -- -dumb-name
"s,'s和\s也没有帮助。 git 分支 -m不工作。
我终于把它修好了。 进入您的工作副本 . git/ refs/ heads, 找到文件名“ - dumb- name ” , 获取分支的大麻。 然后, 这将检查它, 制造一个新的有正常名称的分支, 并删除旧的分支 。
git checkout {hash}
git checkout -b brilliant-name
git branch -d -- -dumb-name
其他回答
要重命名当前分支( 除独立 HEAD 状态外) 您也可以使用此别名 :
[alias]
mvh = !sh -c 'git branch -m `git rev-parse --abbrev-ref HEAD` $1'
如果您想要更改当前分支的名称,请运行 :
git branch -m [old_branch] [new_branch]
如果您想要删除旧的远程分支,请运行 :
git push origin :[old_branch]
如果您想要删除旧的远程分支并创建一个新的远程分支,请运行 :
git push origin :old_branch new_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
我愚蠢地命名了一个分支,从连字符开始,然后检查了主人。我不想删除我的分支,我在里面有工作。
这两种办法都行不通:
git 检出 - dumb- name
git 检出 -- -- -dumb-name
"s,'s和\s也没有帮助。 git 分支 -m不工作。
我终于把它修好了。 进入您的工作副本 . git/ refs/ heads, 找到文件名“ - dumb- name ” , 获取分支的大麻。 然后, 这将检查它, 制造一个新的有正常名称的分支, 并删除旧的分支 。
git checkout {hash}
git checkout -b brilliant-name
git branch -d -- -dumb-name
到目前为止,答案是正确的,但以下是一些补充信息:
人们可以安全地将分支名称重新命名为 '-m' (move) , 但必须小心使用 '- M' , 因为它迫使重命名, 即使已经有一个已有的分支名称相同 。 以下是“ gitt- branch” man page的节录 :
在 a - m 或 - M 选项下, < oldbranch > 将重新命名为 < newbranch > 。 如果 < oldbranch > 拥有相应的 reflog, 它将被重新命名为匹配 < newbranch > , 并创建一个 reflog 条目以记住分支重命名。 如果存在 < newbranch > , 则 - M 必须用来强制重命名 。