我有以下1-liner,我用它来看看谁可能是一个很好的候选人帮助一些代码:
git log --pretty=short . | grep ^Auth | sort | uniq -c | sort -nr
Run Code Online (Sandbox Code Playgroud)
根据提交的顺序列出作者,它很粗糙,但它可以正常工作.
当我将它添加到我的git配置中时,如下所示:
[alias]
guru=!git log --pretty=short . | grep ^Auth | sort | uniq -c | sort -nr
Run Code Online (Sandbox Code Playgroud)
赛跑
git guru
Run Code Online (Sandbox Code Playgroud)
从命令行运行它会产生不同的结果.
stuart@beavis(rp):~/git/apps$ git log --pretty=short . | grep ^Auth | sort | uniq -c | sort -nr
710 Author: dave <dave@b2368a2b-315f-46b9-a0b0-05934f827f41>
415 Author: pete <pete@b2368a2b-315f-46b9-a0b0-05934f827f41>
402 Author: craig <craig@b2368a2b-315f-46b9-a0b0-05934f827f41>
Run Code Online (Sandbox Code Playgroud)
相比:
stuart@beavis(rp):~/git/apps$ git guru
859 Author: craig <craig@b2368a2b-315f-46b9-a0b0-05934f827f41>
813 Author: paul <paul@b2368a2b-315f-46b9-a0b0-05934f827f41>
798 Author: dave <dave@b2368a2b-315f-46b9-a0b0-05934f827f41>
Run Code Online (Sandbox Code Playgroud)
正如StefanNäwe在下面所说,别名在你的存储库的根目录中运行,有没有办法在我所在的目录上运行命令,或指定?
And*_*lau 23
有没有办法在我所在的目录上运行命令,或指定?
就在这里.当你运行一个git命令时,你的环境会获得一个GIT_PREFIX带有相对路径值的变量(从顶层到执行git之前的路径)所以你需要的是你的git别名(运行shell命令,需要正确的pwd)的前缀cd ${GIT_PREFIX:-.} &&.
简单测试,将此添加到您的 ~/.gitconfig
[alias]
p = !pwd && cd ${GIT_PREFIX:-.} && pwd
Ste*_*äwe 13
使用shell命令(即前缀为!)的git的别名在工作目录(.git生命中)的顶层运行.简单别名(不!)在当前目录下运行.
看看您正在做什么,您可能想使用它,git shortlog -sn因为这已经完成了有问题的任务。
git 别名并不都在顶层运行。正如git config 手册中所述“请注意,shell 命令将从存储库的顶级目录执行,该目录不一定是当前目录。” 因此只有 shell 命令在顶层运行。如果您只是为 git 子命令添加别名,它将在当前位置运行。以下会话日志演示了这一点:
pat@FROG /c/src/WiRE.git/wdf/src (pt/wdf)
$ git rev-parse --show-cdup
../../
pat@FROG /c/src/WiRE.git/wdf/src (pt/wdf)
$ git config alias.cdup 'rev-parse --show-cdup'
pat@FROG /c/src/WiRE.git/wdf/src (pt/wdf)
$ git cdup
../../
pat@FROG /c/src/WiRE.git/wdf/src (pt/wdf)
$ git config alias.cdup2 '!git rev-parse --show-cdup'
pat@FROG /c/src/WiRE.git/wdf/src (pt/wdf)
$ git cdup2
pat@FROG /c/src/WiRE.git/wdf/src (pt/wdf)
$
Run Code Online (Sandbox Code Playgroud)
您的示例使用以“git”开头的别名命令。如果我尝试将 'git rev-parse --show-cdup' 设置为别名,它会返回一个错误,指出 'git 不是 git 命令',所以我怀疑您实际上也有一个感叹号,因此将其作为 shell 命令运行,因此从顶层运行。
| 归档时间: |
|
| 查看次数: |
921 次 |
| 最近记录: |