在我当前的仓库中,我有以下输出:
$ git branch -a * master remotes/origin/master remotes/public/master
我想remotes/public/master从分支列表中删除:
remotes/public/master
$ git branch -d remotes/public/master error: branch 'remotes/public/master' not found.
此外, 的输出git remote很奇怪,因为它没有列出public:
git remote
public
$ git remote show origin
如何从分支列表中删除“remotes/public/master”?
更新,尝试了git push命令:
git push
$ 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
修剪 删除 下的所有过时跟踪分支。这些陈旧的分支已从 引用的远程存储库中删除,但仍可在本地“remotes/”中使用。 使用 –dry-run 选项,报告将修剪哪些分支,但实际上并不修剪它们。
修剪
删除 下的所有过时跟踪分支。这些陈旧的分支已从 引用的远程存储库中删除,但仍可在本地“remotes/”中使用。
使用 –dry-run 选项,报告将修剪哪些分支,但实际上并不修剪它们。
但是,似乎这些应该早点清理
git remote rm public
R M 删除名为 的遥控器。删除所有远程跟踪分支和远程配置设置。
R M
删除名为 的遥控器。删除所有远程跟踪分支和远程配置设置。
因此,可能是您手动编辑了配置文件而没有发生这种情况,或者您有权限问题。
也许再运行一次,看看会发生什么。
如果您查看修订日志,您会注意到我建议了更多“正确”的技术,无论出于何种原因,这些技术都不想在他们的存储库上工作。
我怀疑 OP 做了一些事情,导致他们的树处于不一致的状态,导致它的行为有点奇怪,并且git gc需要修复留下的残留物。
git gc
通常 git branch -rd origin/badbranch足以 nuking 本地跟踪分支或git push origin :badbranchnuking 远程分支, 通常 您 永远 不需要调用git gc
git branch -rd origin/badbranch
git push origin :badbranch