git - 如何在 Git 别名中使用“$@”?
问题描述
git log --name-status --pretty=format: | sed '/^$/d' | cut --fields=2- | sort | uniq --count | sort --numeric-sort --reverse | head
打印 Git 存储库中编辑最多的 10 个文件(基于this)。我想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'
推荐阅读
- reactjs - React 检查组件重新渲染的次数
- node.js - 如何使用节点将我的 CSS 和 index.html 文件托管到我的本地服务器中
- dagger-2 - 用于封装的 Dagger 2 子组件
- fscalendar - 在 FSCalendar 中,如何在没有 reloadData 的情况下刷新最小日期
- android - 显示多个列表的有效方式
- sql - 如何优化 SQL 查询性能
- python - Keras 自定义损失:将值汇集到直方图中
- c# - MSB3258:mscorlib 4.0.0.0 和 2.0.0.0
- python - 在视图 Django 中声明类的 Instant
- html - 如何自动缩放背景图像并保持图像比例?