作者热门文章
- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我最近重组了我的 remote.origin.fetch
refspec,现在只从远程获取一小部分分支。但是,git branch -a
向我显示了很多我之前获取的远程分支,尽管现在不再获取它们。使用 git prune
没有帮助,因为那些远程跟踪分支确实存在于 remote 中。
最佳答案
robrich 的回答有一个很好的提示:你可以只删除每个远程跟踪分支(甚至远程),然后使用 git fetch
只抓取那些你现在想要的从头开始。
如果您确实尝试一起删除 Remote ,您可能需要备份您的 .git/config 文件,这样当您稍后添加 Remote 时,您可以从备份中获取每个 Remote 的设置。
但是,删除 remote 不会为我删除 remote-tracking 分支。也许我的本地 repo 协议(protocol)不好。对于遇到同样问题的任何人,我最终做的是:
# This deletes all remote tracking branches for all remotes. So be careful if you have multiple remotes.
git branch -r | xargs -L 1 git branch -rD
另外,我有很多来自远程的标签,这会减慢速度。我也是这样做的:
# Be careful! This deletes EVERY tag!
git tag | xargs -L 1 git tag -d
您可能希望将 git fetch
配置为下次不取回所有这些标签,这超出了这个问题的范围。
关于git - 如何删除仍然存在于远程但不再在我的获取引用规范中的所有远程跟踪分支,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15650184/
我是一名优秀的程序员,十分优秀!