重置git自动完成缓存?

时间:2017-09-15 21:11:23

标签: git autocomplete

我以前从https://github.com/git/git/tree/master/contrib/completion获得了部分工作版的git autocomplete。我一直在搞乱,现在它完全被打破了。

最初自动完成可以完成所有git命令和分支;但是,它不会显示我的任何别名。我试图通过摆弄很多来解决这个问题。我结束然后打破它所以它不会自动完成别名或分支(git checkout <TAB><TAB>只会在有大量分支时显示HEAD)。然后我真的打破了它......

可能会破坏它的是我相信我运行__git_complete map git_map其中map是我在gitconfig文件中创建的git别名。现在,当我尝试执行git自动完成时,它只显示下面显示的一个奇怪的选项列表。这些是一些命令,如rebase,我在系统中的别名和全局文件,如s(系统)和map(全局),以及其他我不完全确定的事情

git <TAB> <TAB>

a                     cm                    master 
aa                    d                     mergetool 
ac                    filter-branch         p4 
acm                   gui                   rebase 
addnw                 imap-send             request-pull 
alias                 instaweb              s 
au                    l                     send-email 
bisect                lg                    spull 
c                     ll                    spush 
ca                    llg                   stash 
citool                map                   submodule 
clang-format-mp-3.8   mapall                subtree 
clang-format-mp-3.9   mapblame              svn 

有没有办法只重置所有自动完成选项。重新启动我的系统,重新下载完成脚本都没有做任何事情。看起来该工具仍然可以运行,但我已经破坏了它可用的命令。如果可以为自动完成工具重置某种缓存,我会有足够的内容回到原始状态。

我在OSX 10.10.5,GNU bash版本3.2.57(1)-release(x86_64-apple-darwin14),git版本2.14.1。

编辑:我认为我所做的事情真的让人感觉不舒服__git_complete git __git_main

1 个答案:

答案 0 :(得分:0)

我相信我有一个路径问题,并且Xcode命令行工具附带的git被用于某些选项,官方git版本正在其他地方使用。我忘记了究竟是什么,但Apple发布的git缺乏功能,当它是2.14.1时,我将其替换为官方版本。

我最终从官方github repo和建筑下载了最新的每晚版本的git(git版本2.14.1.536.g6867272d5)。我认为这个版本的git必须与他们的自动完成脚本正常工作(也许苹果版本失败了)。然后我更新了我的路径,以便“〜/ bin”(默认情况下从make文件中安装git)先行,使其成为/etc/paths中的第一行。

现在我的git自动完成功能正确地找到了命令,分支和别名。我知道在其他与切向相关的问题中找到了一些解决方案,并且放弃了Apple的bash版本,但我不认为这是必要的。

一个奇怪的地方:我也没有回忆制作系统范围的gitconfig(/User/NAME/etc/.gitconfig)文件(其中我不熟悉的别名出现在上面的列表中,类似a,{ {1}},s等,现在我重新删除了它已经消失的一切。