在我当前的仓库中,我有以下输出:
$ 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.
另外, git remote
的输出很奇怪,因为它没有列出public
:
$ git remote show
origin
如何从分支机构列表中删除 “remotes / public / master”?
更新,尝试了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 选项,报告将修剪哪些分支,但实际上不修剪它们。
但是,看来这些应该早点用
git remote rm public
R M
删除名为
的远程服务器。远程的所有远程跟踪分支和配置设置都将被删除。
因此,可能是您手动编辑了配置文件,但这种情况没有发生,或者您遇到权限问题。
也许再次运行,看看会发生什么。
如果您查看修订日志 ,您会注意到我建议了更多的 “正确” 技术,无论出于何种原因,它们都不希望在其存储库中使用。
我怀疑 OP 所做的某些事情使他们的树处于不一致状态,从而导致其行为有些奇怪,并且需要git gc
来修复左后角的碎片。
通常 git branch -rd origin/badbranch
是足够的摧毁当地的跟踪分支,或git push origin :badbranch
为的摧毁远程分支, 通常你将永远不会需要调用git gc
您需要做的就是
git fetch -p
它将删除所有远程删除的本地分支。
如果您使用的是 git 1.8.5+,则可以自动设置
git config fetch.prune true
要么
git config --global fetch.prune true
git push public :master
正如 Kent Fredric 指出的那样,这将删除名为master
的远程分支。
列出远程跟踪分支机构:
git branch -r
删除远程跟踪分支:
git branch -rd public/master