Bash git别名选项卡完成错误

前端之家收集整理的这篇文章主要介绍了Bash git别名选项卡完成错误前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我知道 Git别名可以用于参数 Git Faq section “Git Aliases with argument”.

但是今天我遇到了一个错误.

拿一个不适合实际使用的简单例子.如果我这样做一个别名:

[alias]
    lo = "!sh -c 'git log $1' -"

那我可以用

git lo file_a

查看file_a的日志.

但是当我使用“选项卡”自动完成路径时,会发生以下错误.

git lo [tab]

错误msg:

sh: declare: `_git_{': not a valid identifier

在git-completion.bash中似乎是一个错误.但是我找不到`_git_ {‘的位置!

另外我发现在错误msg中,引用标记_git_ {似乎很奇怪.

BTW,我的msysgit版本是1.7.6-preview20110708

加:

另一个奇怪的是,我在Git的目录下搜索所有文件,发现没有文件包含字符串_git_ {.

我猜想为git设置了一个自定义完成功能,并且错误在该设置中.首先尝试删除自定义完成,并查看错误是否消失:
complete -r git

旁注:对于在git别名中具有可重用参数的shell命令,现代习语是定义一个shell函数,它允许您使用标准shell参数处理,并且与“sh -c”相比有一个较少的参数引用来处理“:

[alias]
  plush = "!f() { git pull \"$@\" && git push \"$@\" }; f"

猜你在找的Bash相关文章