git - git log 漂亮的单行输出,只有简短的哈希和文件名
问题描述
我需要将远程更改的文件列表作为一行获取,然后逐行处理以生成过时文件的列表。
但令我惊讶的是,在所有可能的漂亮格式 %tokens 中,没有一个可以获取文件名:https ://git-scm.com/docs/pretty-formats
git log --pretty=format:'%f' -- 'myfilename-to-check';
pretty=format:'%f' 会给我提交消息,但我怎样才能得到漂亮格式中的文件名。
是的,我知道我可以做 --name-only 或 --name-status 但这不允许我完全按照我的需要格式化输出。
是否没有显示文件名的格式 %token / %key ?
更新
抱歉,我忘了说明有多个文件名要检查:
git log --pretty=format:'%f' -- 'myfilename-to-check-1' 'myfilename-to-check-2' 'myfilename-to-check-3' 'myfilename-to-check-...etc...';
解决方案
更改的文件没有这样的占位符。这是 bash 中的一种解决方法。
git rev-list HEAD -- myfile-to-check | while read commit;do
echo $(git log -1 $commit --pretty=format:'%h-%f' --name-only)
done
git rev-list
打印更改的提交哈希myfile-to-check
。
echo
并git log -1
一一打印每个提交的短哈希、净化主题和更改文件。
推荐阅读
- python - 在大文本文件中打印出特定信息
- python - 当 cdf 表示从 cv2.calcHist 构建的累积分布函数时,Cdf / Cdf[-1] 会做什么?
- c++ - 如何在 C++ 中将数字字符串拆分为数组?
- c# - C#, .Net Core 私钥认证 httpClient
- php - Laravel:从 API 获取不一致的结果
- kubernetes - Prometheus 的 http_request 自定义指标在 Kubernetes 中不起作用
- javascript - 如何从搜索中排除包括转义字符在内的整个单词?
- android - android 9 - listview 行左移
- api - 如何使用 API 平台中的日期过滤器在两个日期之间进行过滤
- javascript - 如何使用 jquery 检索图像元素的代码