在我的当前回购中,我有以下输出:

$ git branch -a
* master
  remotes/origin/master
  remotes/public/master

我想从分支列表中删除remotes/public/master:

$ git branch -d remotes/public/master
error: branch 'remotes/public/master' not found.

此外,gitremote的输出很奇怪,因为它没有列出public:

$ git remote show 
origin

如何从分支列表中删除“remotes/public/master”?

更新,尝试了gitpush命令:

$ git push public :master
fatal: 'public' does not appear to be a git repository
fatal: The remote end hung up unexpectedly

当前回答

仅略微相关,但在与我们相同的情况下可能仍然有用——我们使用网络文件共享作为远程存储库。上周一切正常,本周我们收到错误“远程源没有为分支Ref/heads/master发布Ref。此Ref可能不存在于远程中,或者可能被权限设置隐藏”

但我们认为没有采取任何措施来腐败。NFS做快照,所以我查看了每个“以前的版本”,发现三天前,存储库的MB大小已从282MB变为33MB,现在有大约1403个新文件和300个文件夹。我询问了我的同事,其中一人当天试图推送,然后取消了推送。

我使用NFS“恢复”功能将其恢复到该日期之前,现在一切都恢复正常。我以前确实试过修剪,但似乎没用。也许更严厉的清理会奏效。

希望有一天这会对其他人有所帮助!

Jay

其他回答

当裁判被打包时,接受的答案对我不起作用。然而,这确实:

$ git remote add public http://anything.com/bogus.git
$ git remote rm public

仅略微相关,但在与我们相同的情况下可能仍然有用——我们使用网络文件共享作为远程存储库。上周一切正常,本周我们收到错误“远程源没有为分支Ref/heads/master发布Ref。此Ref可能不存在于远程中,或者可能被权限设置隐藏”

但我们认为没有采取任何措施来腐败。NFS做快照,所以我查看了每个“以前的版本”,发现三天前,存储库的MB大小已从282MB变为33MB,现在有大约1403个新文件和300个文件夹。我询问了我的同事,其中一人当天试图推送,然后取消了推送。

我使用NFS“恢复”功能将其恢复到该日期之前,现在一切都恢复正常。我以前确实试过修剪,但似乎没用。也许更严厉的清理会奏效。

希望有一天这会对其他人有所帮助!

Jay

在我的例子中,我试图删除保存在.git/packed ref中的条目。您可以编辑此纯文本文件,并删除git br-D不知道如何触摸的条目(至少在1.7.9.5版本中)。

我在这里找到了这个解决方案:https://stackoverflow.com/a/11050880/1695680

我不知道git branch-rd,所以我自己解决此类问题的方法是将我的回购视为远程回购并进行远程删除。git push.:refs/remotes/public/master。如果其他方法不起作用,并且你想删除一些奇怪的引用,那么这种生涩的方法一定会奏效。它使您能够精确地删除(或创建!)任何类型的引用。

git push origin --delete <branch name>

引用自:http://www.gitguys.com/topics/adding-and-removing-remote-branches/