我在这个GitHub存储库(非主人)上有一个分支,现在我正在尝试重命名它,出于某种原因我收到了这个错误:
git push origin :OldName
To git@github.com:user/gitRepo.git
! [remote rejected] OldName (refusing to delete the current branch: refs/heads/OldName)
error: failed to push some refs to 'git@github.com:user/gitRepo.git'
这是因为我没有任何主分支吗?这是我的git branch -a
:
OldName
remotes/origin/HEAD -> origin/OldName
remotes/origin/OldName
答案 0 :(得分:4)
如果git branch -a
的输出是准确的,那么看起来您只有一个分支OldName
,并且在GitHub上具有相同名称的单个对应分支。删除存储库中唯一的分支没有多大意义,因为那个存储库中没有内容,也没有内容(除了reflog,如果它仍然存在)。
具体而言,错误可能是由于略有不同的原因造成的。由于OldName
分支是GitHub中唯一的分支,因此很可能是存储库的默认分支。 GitHub不允许您删除默认分支,因为这意味着浏览您的仓库的人可能无法看到内容。
要解决此问题,您可以使用所需的名称创建分支,并从那里执行删除:
<强>本地强>
git checkout -b NewName # create a dummy branch from OldName
git push origin NewName
在GitHub上
将默认分支更改为NewName
本地(再次):
git push origin :OldName
答案 1 :(得分:3)
这不是[git]限制,但是[github]为你做了额外的理智保护。更改你的GitHub项目中的[默认分支],然后重试。
示例网址(更改[用户]和[项目]):
答案 2 :(得分:0)
在从远程 git 存储库中删除它之前,我必须移动 github 存储库上的默认分支。从默认分支中删除该分支后,我(再次)运行了命令: git push origin --delete [分支名称] --force
问题解决了。