我以前从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
。
答案 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
等,现在我重新删除了它已经消失的一切。