git log --name-status --pretty=format: | sed '/^$/d' | cut --fields=2- | sort | uniq --count | sort --numeric-sort --reverse | head
打印 Git 存储库中编辑次数最多的 10 个文件(基于此)。我想most-edited
为这个命令创建一个 Git 别名,但有一个警告:该命令应该将任何额外的参数放入git log
命令中。这将允许我运行git most-edited 'foo bar/' baz/
以获取foo bar
(注意空格)和baz
目录中编辑最多的文件。
在脚本中,这就像添加-- "$@"
到git log
命令中一样简单。但是,如果我创建别名,most-edited = !git log --name-status --pretty=format: -- "$@" | sed '/^$/d' | cut --fields=2- | sort | uniq --count | sort --numeric-sort --reverse | head
则参数将传递给管道中的最后一个命令head
. 有什么方法可以将参数传递给git log
?
在别名中,定义一个函数,然后立即调用该函数。扩展别名时,命令行上的任何附加参数都将成为该函数的参数。
most-edited = '!f () { git log --name-status --pretty=format: -- "$@" | sed '/^$/d' | cut --fields=2- | sort | uniq --count | sort --numeric-sort --reverse | head; }; f'
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句