git别名,格式为.gitconfig

时间:2014-04-11 17:37:23

标签: git git-alias

我尝试做的几乎与此处描述的相同,但存在同样的问题:

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中定义这样的功能?

1 个答案:

答案 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

这很方便。