如何在Git中删除原点/母版


10

我无法origin/master从服务器中删除。不知道为什么。

我的终端的屏幕截图

错误消息如下

remote: error: By default, deleting the current branch is denied, because the next
remote: error: 'git clone' won't result in any file checked out, causing confusion.
remote: error: 
remote: error: You can set 'receive.denyDeleteCurrent' configuration variable to
remote: error: 'warn' or 'ignore' in the remote repository to allow deleting the
remote: error: current branch, with or without a warning message.
remote: error: 
remote: error: To squelch this message, you can set it to 'refuse'.
remote: error: refusing to delete the current branch: refs/heads/master
To acanzian@elab.ecn.purdue.edu:/export/home/a/elabshare/git/ID-check.git
 ! [remote rejected] master (deletion of the current branch prohibited)
error: failed to push some refs to 'acanzian@elab.ecn.purdue.edu:/export/home/a/elabshare/git/ID-check.git'

不,我没有使用Github


1
你为什么想这么做?还有其他分支吗?
丹尼尔·B

实际上,还有其他分支(实际上,请检查指向图像的链接,您能为我显示它吗?)。我们必须重新建立基础master,并在一个现在应该成为的临时分支上进行了master。唯一的问题是我不知道为什么无法杀死服务器上的master。
Atcold 2014年

2
也许不是您要找的答案,但是您可以强制将重新设置masterorigin/master,有效地将旧的替换为新的。
SlightlyCuban 2014年

除了错误消息,请发布您正在使用的命令。
Kyralessa

@Kyralessa,检查屏幕截图。
2014年

Answers:


7

有趣的事实:甚至远程存储库都在分支上。您被拒绝是因为您正试图删除您的来源当前已“签出”的分支。

如果您可以直接访问该存储库,则只需打开一个shell裸机repor目录,然后使用good old git branch命令查看当前分支起源。要将其更改为另一个分支,您必须使用git symbolic-ref HEAD refs/heads/another-branch

如果您使用的是Github或Gitorious之类的服务,则必须使用该工具提供的UI进行更改(有关常见工具的用法,请参见此答案)。


太棒了,它起作用了,它使我有机会refsGit中学习更多信息!非常感谢你!(是的,我知道如何在Github上处理它,但在我们的个人服务器上却没有。)
Atcold 2014年

12

代替从服务器上实际删除master,您可以像这样替换它:

git push origin otherbranch:master -f

它将用otherbranch的内容替换master,但在远程上仍称为master。然后,您可以在本地将master作为master签出。


好,谢谢!我知道我可以强制执行操作,但是我想知道为什么我不能删除该master分支,而可接受的答案解释了原因。
Atcold 2014年

1
+1。这是我可以删除对remotes / origin / master的错误第一次提交的唯一方法。
ctn
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.