将git的自动完成功能扩展到管道命令

Sas*_*olf 2 git autocomplete git-plumbing

作为这个问题的后续,我问自己是否有可能告诉git为其他命令提供自动完成功能(分支等),特别是管道命令update-ref.

虽然update-ref提供了更多的灵活性branch -f,但使用起来非常麻烦,因为您始终必须键入完整的引用名称.这反过来又不会让我想要使用它.

有什么想法吗?

And*_*w C 5

可以启用管道命令,但您需要自己提供一些实现.

找到git-completion.sh您正在使用的脚本.

在我的/users/andrewc/.bashrc

# GIT STUFF 
if [ -f ~/.git-completion.bash ] 
then
    . ~/.git-completion.bash 
fi
Run Code Online (Sandbox Code Playgroud)

所以我拉起来 /users/andrewc/git-completion.bash

找到该功能__git_list_porcelain_command())并注释掉该行 update-ref

        #update-ref)       : plumbing;;
Run Code Online (Sandbox Code Playgroud)

这将允许update-ref自动完成.该脚本不知道如何填写任何args update-ref.看起来你需要提供一个实现__git_update_ref来实现这一目标.我会使用类似的命令(`__git_branch)作为模板并从那里开始.