列出特定用户贡献的 git repo 中所有文件的最简单方法是什么。
问问题
222 次
3 回答
2
我认为以下内容可以满足您的要求:
git log --diff-filter=A --author='Someone' --name-only --pretty=format: | sort -u
请注意,--diff-filter=A
表示仅报告已添加的文件,而--pretty=format:
只是为了抑制提交消息的正常输出git log
。
请注意,这只是显示特定作者在提交中添加的文件 - 例如,在绝大多数情况下,它不会准确反映他们对项目的贡献。
于 2012-07-02T08:31:44.007 回答
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
:)
于 2012-07-02T05:20:09.927 回答
0
你总是可以使用 grep :
git log | grep -B 2 -A 3 'Author: Timmy'
-B num
表示匹配前显示的行-A num
数和匹配后的行数
于 2012-07-02T05:13:18.817 回答