在Pro Git中,Scott Chacon给出了some alias which might be helpful的一些很好的例子,包括显示最后一次提交的例子:git last
,相当于log -1 HEAD
:
git config --global alias.last 'log -1 HEAD'
它将显示如下内容:
$ git last
commit 66938dae3329c7aebe598c2246a8e6af90d04646
Author: Josh Goebel <dreamer3@example.com>
Date: Tue Aug 26 19:48:51 2008 +0800
test for current head
我在类似Pass an argument to a Git alias command的堆栈溢出上阅读了一些类似的问题,但仍未能解决这个问题。
我能想到的最好的方法是修改我的.gitconfig
文件,如下所示:
[alias]
last = log -1 HEAD
mylast = "!sh -c 'echo /usr/local/bin/git last -$0 HEAD'"
然后,如果我在命令行运行它:
$ git mylast 12
我明白了:
/usr/local/bin/git last -12 HEAD
实际上看起来是正确的。但是如果我删除前面的echo
,它就会像等待输入一样挂起。我尝试为$0
切换$1
,但这似乎也无济于事。
我做错了什么?
另外,有没有办法设置它,这样如果我只输入git last
没有数字,那么它会默认为“1”?
答案 0 :(得分:3)
last = !sh -c 'git log "-${1:-1}" HEAD' -
如果未设置变量${var:-default}
,则会利用shell parameter interpolation default语法default
替换var
。