我尝试做的几乎与此处描述的相同,但存在同样的问题:
Creating a 'git log' alias with formatting
当然,这个主题的解决方案很有效。
但是,我想说我想在git命名空间中对我的git函数进行分组,即运行git gl "some time ago"
。
但是当我尝试直接在.gitconfig中定义函数时:
gl = "!f() { git log --all --pretty=format:'%h %cd %s (%an)' --since="$1"; }; f"
,
我有与以前相同的错误 - fatal: ambiguous argument ...lalala...
。
即使在.bash_profile中定义函数并从git别名调用函数也是如此。
使用“全局”功能并不是一个大问题,但我想知道,为什么会发生这种情况?是否有可能在.gitconfig中定义这样的功能?
答案 0 :(得分:3)
这是一个引用问题。
我还没有看到任何正确描述引用如何在git别名中起作用的东西,但这有效:
gl = "!f() { git log --all --pretty=format:'%h %cd %s (%an)' --since=\"$1\"; }; f"
也就是说,使用反斜杠双引号来获取双引号以进入shell别名,以便扩展$ 1。
请注意,您必须将其调用为:
$ git gl "one year ago"
如果您使用$1
代替$*
,则可以将其调用为:
$ git gl one year ago
这很方便。