我需要将远程更改的文件列表作为一行获取,然后逐行处理以生成过时文件列表。
但令我惊讶的是,在所有可能的漂亮格式% token 中,没有一个可以获取文件名: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
逐一打印每个提交的短哈希、经过清理的主题和更改的文件。
关于git log 漂亮的单行输出,只有简短的哈希值和文件名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65000009/