在我的当前回购中,我有以下输出:
$ 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
您可能需要清理:
git gc --prune=now
或者你可能需要修剪:
git remote prune public
修剪删除<name>下的所有过时跟踪分支。这些过时的分支已经从<name>引用的远程存储库中删除,但仍然在“remotes/<name>”中本地可用。使用--dry-run选项,报告将修剪哪些分支,但实际上不修剪它们。
然而,这些似乎应该早一点用
git remote rm public
rm公司删除名为<name>的远程。所有远程跟踪分支和远程的配置设置被移除。
因此,可能是您手动编辑了配置文件,但没有发生这种情况,或者您存在权限问题。
也许再运行一次,看看会发生什么。
建议上下文
如果你查看修订日志,你会注意到我建议了更多“正确”的技术,无论出于什么原因,这些技术都不想在他们的存储库中工作。
我怀疑OP做了一些事情,使他们的树处于不一致的状态,导致其行为有点奇怪,需要git-gc来修复遗留的cruft。
通常,gitbranch-rd-origin/badbranch足以攻击本地跟踪分支,或者gitpushorigin:badbranch用于攻击远程分支,通常您永远不需要调用gitgc