我正在尝试在本地和远程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
Run Code Online (Sandbox Code Playgroud)
OK很有意义,所以我尝试切换到origin/master它git checkout master,它告诉我:Already on 'master'.是否还需要在远程目录中设置当前分支?我该怎么办?
kk.*_*kk. 20
要从您的计算机中删除本地分支:
git branch -d <branch-name>
Run Code Online (Sandbox Code Playgroud)
要删除远程分支:
git push origin :<branch-name>
Run Code Online (Sandbox Code Playgroud)
在您的情况下,上述陈述将是:
要从您的计算机中删除本地分支:
git branch -d feat
Run Code Online (Sandbox Code Playgroud)
要删除远程分支:
git push origin :feat
Run Code Online (Sandbox Code Playgroud)
编辑(按OP的注释-我没有使用过GitLab):GitLab具有一个带有下拉菜单的Web界面。您需要在“设置”视图(而不是“项目”视图)下的一个。在“设置”视图的“默认分支”下选择一个分支,然后单击“保存更改”以在服务器上设置当前分支。
您有正确的想法,但必须记住,涉及到两个存储库(两个Git)。
每当您获得带有前缀的文本时remote:,这意味着该文本来自另一个Git。因此,当您拥有自己的Git时,请另一个Git删除feat,这是另一个Git抱怨的feat是当前分支。
因此:
是否还需要在远程目录中设置当前分支?
是的(嗯,“代替”而不是“也”)。
我该怎么做?
通常,使用任何存储库的方式相同:登录cd到存储库目录,然后运行git checkout。但是在服务器上有一两个带有可推送存储库的地方:
它可能是一个--bare存储库,因此您不能git checkout直接使用它。这里的窍门是git symbolic-ref用来更新HEAD:
git symbolic-ref HEAD refs/heads/master
Run Code Online (Sandbox Code Playgroud)
当然,这假设您可以登录(请参见第一点)。举例来说,如果有一个Web界面可以让您更改遥控器上的当前分支,那么它将必须git symbolic-ref为您执行此操作。
小智 5
当我想从原点删除主人时,我遇到了同样的问题。
假设您要删除 master,我分 3 个步骤解决了该问题:
转到您存储库的 GitLab 页面,然后单击“设置”按钮。
在Default Branch 中,将默认分支从 master 切换到其他分支。
在Protected Branches 中,如果有任何保护,则取消对 master 的保护。
然后您再次尝试删除分支。
如果它不是您要删除的 master,只需对所需的分支执行相同的步骤即可。
| 归档时间: |
|
| 查看次数: |
31848 次 |
| 最近记录: |