在我的git配置中,我有一个相对较长的别名,它以一种漂亮的格式输出最近的git提交日志:
lg = log --color --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%ar) %C(bold blue)<%an>%Creset'
我还有另一个别名,它基于前一个,通过在命令中添加--all
选项。我不想通过在两个别名中指定整个命令字符串来重复自己,所以我只将新的别名shell发送到前一个:
la = !git lg --all
这很有效,但是有一个问题:虽然分支名称的自动完成与我的常规git lg
别名一起工作正常,但对于那个发出的分支名称,它根本不起作用。
如何使git分支名称的自动完成与使用其他命令的别名一起工作?
注意:这个问题与How do I get bash completion to work with aliases?不同,因为该问题涉及git命令的bash别名,而不是git的内置别名系统。
答案 0 :(得分:2)
在这种情况下,键入任何分支名称都会得到相同的结果,因为--all
选项显示所有引用。但是,如果你添加
function _git_la() {
_git_log
}
到你的shell启动文件,它应该正确自动完成。