列出特定用户贡献的git repo中的所有文件的最简单方法是什么。
答案 0 :(得分:2)
我建议其中一个:
# commit + full message + list of changed files
git log --author="Frank Nord" --stat
# commit + full message
git log --author="Frank Nord"
# just commit + one line message
git log --author="Frank Nord" --format=short
有关--format
的更多选项以及--author
支持的模式信息,请参阅git log --help
。
如果你真的只需要文件,你需要做一些grepping:
git log --author="Frank Nord" --stat --format=oneline | grep -Po "(?<=^ ).*(?=\|)" | grep -Po "[^ ]+(\s*[^ ]+)*" | sort | uniq
这将为您提供Frank Nord所触及的独特路径列表。它实际上需要两个grep阶段,grep否则会错误地使用exceeded PCRE's backtracking limit
:)
答案 1 :(得分:2)
我认为以下是您想要的:
git log --diff-filter=A --author='Someone' --name-only --pretty=format: | sort -u
请注意,--diff-filter=A
表示只报告已添加的文件,--pretty=format:
只是为了抑制git log
提交邮件的正常输出。
请注意,这只是显示特定作者在提交中添加的文件 - 例如,在绝大多数情况下,它无法准确反映他们对项目的贡献。
答案 2 :(得分:0)
你可以随时使用grep:
git log | grep -B 2 -A 3 'Author: Timmy'
-B num
表示匹配前显示的行数,-A num
匹配后的行数