为什么我不能删除远程GitLab存储库中的分支? [英] Why can't I delete a branch in a remote GitLab repository?
本文介绍了为什么我不能删除远程GitLab存储库中的分支?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我正在尝试在本地和远程GitLab存储库中删除分支。它的名字是origin/feat
。我尝试了git push --delete origin feat
。Git投诉:
remote: error: By default, deleting the current branch is denied, because the next
remote: 'git clone' won't result in any file checked out, causing confusion.
remote:
remote: You can set 'receive.denyDeleteCurrent' configuration variable to
remote: 'warn' or 'ignore' in the remote repository to allow deleting the
remote: current branch, with or without a warning message.
remote:
remote: To squelch this message, you can set it to 'refuse'.
remote: error: refusing to delete the current branch: refs/heads/feat
OK是有意义的,所以我尝试使用git checkout master
切换到origin/master
,它告诉我:Already on 'master'
。当前分支是否也需要在远程目录中设置?我该怎么做呢?
推荐答案
编辑(根据OP的评论-我没有使用过GitLab):GitLab有一个带有下拉菜单的Web界面。您需要位于"设置"视图(而不是"项目"视图)下的那个视图。在"默认分支"下的"设置"视图中选择一个分支,然后单击"保存更改"以设置服务器上的当前分支。
详细信息
您的想法是正确的,但您必须记住,涉及两个存储库-两个Git。
每当您收到前缀为remote:
的文本时,这意味着该文本来自其他Git。因此,当您让Git要求其他Git删除feat
时,是另一个Git抱怨feat
是当前分支。
因此:
是否还需要在远程目录中设置当前分支?
是(嗯,"代替"而不是"也")。
通常,与对任何存储库执行此操作的方式相同:登录,我该如何做?
cd
到存储库目录,然后运行git checkout
。但服务器上的可推送存储库有一两个故障:
- 它在服务器上。你甚至可以登录吗?如果不是,您需要一些替代方案(这是特定于服务器的)。
可能是
--bare
存储库,所以不能直接使用git checkout
。这里的诀窍是使用git symbolic-ref
更新HEAD
:
当然,这假设您可以登录(请参见第一点)。比方说,如果有一个Web界面允许您更改遥控器上的当前分支,则它必须为您执行此git symbolic-ref HEAD refs/heads/master
git symbolic-ref
操作。
这篇关于为什么我不能删除远程GitLab存储库中的分支?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文