显示旧/过时条目的 git 分支的制表符补全

显示旧/过时条目的 git 分支的制表符补全

我正在使用某种弗兰肯德式拉伸/sid(我知道这不是最好的主意;计划很快重新安装)。

Tab 补全适用于 git repo 目录中的 git 分支名称:

:~/project $ git checkout <TAB><TAB>
Display all 200 possibilities? (y or n)

:~/project $ git checkout private-rl_<TAB><TAB>
private-rl_1219_misspelled_locale_zhtw   private-rl_1950_scheduler_offset         private-rl_bootstrap_rake_tasks
private-rl_1854_ldap_filter_reset        private-rl_bootstrap_rake_task

但它显示的一些分支不再存在:

:~/project $ git branch
* develop
  private-rl_1219_misspelled_locale_zhtw
  stable

已删除也会发生这种情况偏僻的分支机构。

这里发生了什么? git 完成脚本是否保留可以以某种方式刷新的旧分支的缓存?如何阻止这些分支在制表符补全结果中累积?

答案1

感谢 @PatrickMevzek 的一些温和的刺激,我明白了:

我看到的树枝实际上是对已删除的远程分支的引用。引用上面链接的 SO 线程中的最佳答案,

$ git remote prune origin

为我修好了。

答案2

根据您的设置,还有另一个可能看起来像旧分支或已删除分支的来源 - 您的 git-completion 也可能会建议标签和树枝一起。

我最近被这个愚弄了 - 我们的 CI/CD 管道标记了我们的所有构建,即使某些分支几年前就被发布和/或删除,标签仍然存在。清理遥控器上的旧标签是这里的解决方案(这里有一个指南

答案3

git/contrib/completion/git(1)在源代码中附带了贡献的文件。 shell 的脚本处理完成。

相关内容