如何从Git中删除无效的远程分支引用?
在我目前的回购中,我有以下输出:
$ 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
如何从分支列表中删除“远程/公共/主”?
更新,尝试了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 / <name>”中可用。
使用--dry-run选项,报告将修剪哪些分支,但不实际修剪它们。
不过,看起来这些应该早些时候用清理
git remote rm public
R M
删除名为<名称>的远程。 远程的所有远程跟踪分支和配置设置均被删除。
所以它可能是你手工编辑你的配置文件,这没有发生,或者你有特权问题。
也许再次运行,看看会发生什么。
建议上下文
如果您查看修订日志,您会注意到我提出了更多“正确”的技术,无论出于何种原因,他们都不想在他们的存储库上工作。
我怀疑OP已经做了一些让他们的树处于不一致的状态,导致它表现得有点奇怪,并且需要git gc
来修复留下的残留物。
通常git branch -rd origin/badbranch
足够用于git branch -rd origin/badbranch
本地跟踪分支,或者git push 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
链接地址: http://www.djcxy.com/p/663.html
上一篇: How do you remove an invalid remote branch reference from Git?