格式为.gitconfig的git别名
我尝试了与这里描述的几乎相同的方法,但遇到了相同的问题: 当然,这个主题的解决方案是有效的 但假设我想在git名称空间中对我的git函数进行分组,也就是说,在不久前运行格式为.gitconfig的git别名,git,git-alias,Git,Git Alias,我尝试了与这里描述的几乎相同的方法,但遇到了相同的问题: 当然,这个主题的解决方案是有效的 但假设我想在git名称空间中对我的git函数进行分组,也就是说,在不久前运行git gl。 但当我尝试直接在.gitconfig中定义函数时: gl=“!f(){git log--all--pretty=格式:“%h%cd%s(%an)”--since=“$1”};f“ 我有和以前一样的错误-致命:不明确的参数…拉拉… 即使在.bash_概要文件中定义函数并从git alias调用函数,也会发生同样的情
git gl
。
但当我尝试直接在.gitconfig中定义函数时:
gl=“!f(){git log--all--pretty=格式:“%h%cd%s(%an)”--since=“$1”};f“
我有和以前一样的错误-致命:不明确的参数…拉拉…
即使在.bash_概要文件中定义函数并从git alias调用函数,也会发生同样的情况
使用“全局”函数不是什么大问题,但我想知道,为什么会发生这种情况?是否有可能在.gitconfig中定义这样的函数?这是一个引用问题
我还没有看到任何东西能够正确地描述引用在git别名中的工作方式,但这是有效的:
gl = "!f() { git log --all --pretty=format:'%h %cd %s (%an)' --since=\"$1\"; }; f"
也就是说,使用反斜杠双引号将双引号传递到shell别名,以便展开$1
请注意,您必须以以下方式调用它:
$ git gl "one year ago"
$ git gl one year ago
如果使用$*
,而不是$1
,则可以如下方式调用它:
$ git gl "one year ago"
$ git gl one year ago
这很方便。+1。我想知道你是怎么知道的?试错?实验。有用的项目包括在环境中设置GIT_TRACE(非零),在shell函数中设置-x,这样您就可以看到在何处显示了什么。(我刚才做了这个实验,并在我的.gitconfig中留下了一些注释掉的别名作为提醒。)