在回购中显示用户贡献的所有文件

时间:2012-07-02 05:01:10

标签: git version-control

列出特定用户贡献的git repo中的所有文件的最简单方法是什么。

3 个答案:

答案 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匹配后的行数