作为this question的后续,我问自己是否有可能告诉git为其他命令提供自动完成功能(分支等),特别是像update-ref
这样的管道命令。
尽管update-ref
提供的灵活性比branch -f
更高,但使用起来非常麻烦,因为您始终必须输入完整的引用名称。这反过来又不会让我想要使用它。
有关于此的任何想法吗?
答案 0 :(得分:5)
可以启用管道命令,但您需要自己提供一些实现。
找到您正在使用的git-completion.sh
脚本。
在/users/andrewc/.bashrc
我有
# GIT STUFF
if [ -f ~/.git-completion.bash ]
then
. ~/.git-completion.bash
fi
所以我拉起/users/andrewc/git-completion.bash
找到函数__git_list_porcelain_command())
并注释掉update-ref
#update-ref) : plumbing;;
这样,update-ref
本身就可以自动完成。该脚本不知道如何填充update-ref
的任何args。您似乎需要为__git_update_ref
提供实现以实现此目的。我会使用类似的命令(可能是`__git_branch)作为模板并从那里开始。