我正在尝试创建以下 git 别名:
stat = "!stat() { echo -n Number of revisions:; git log --oneline | wc -l;}; stat"
但是输出是错误的:
> git stat
-n Number of revisions:
5917
我想要的输出是这样的:
> git stat
Number of revisions: 5917
-n 选项不起作用是否正常? 它在命令行上执行。
我使用的是 git 版本 2.5.0。
最佳答案
好的。我找到了!
似乎 git 别名默认使用 sh 而不是 bash。
在我的操作系统上,sh 不支持 -n,但 bash 支持。 所以诀窍是告诉 git 使用 bash 而不是 sh。 ( http://blogs.atlassian.com/2014/10/advanced-git-aliases/ )
使用 bash 的 -c 选项,我可以获得所需的输出。 这是我现在的工作别名:
stat = "!/bin/bash -c 'stat() { echo -n Number of revisions:; git log --oneline | wc -l;}; stat'"
关于没有换行符,Git 别名无法回显,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32607416/