我可以让git告诉我一个用户修改过的所有文件吗?

我想让git给我一个由所有提交的用户修改的所有文件的列表。

我特别的用例是我参与了Ruby on Rails项目的国际化,我们想知道哪些文件已经完成,哪些文件还需要完成。 有问题的用户只能在i18n上工作,而不能在其他代码库上工作。 所以信息都应该在git中,但我不知道如何解决。

这不是唯一的方法,但它的工作原理:

git log --pretty="%H" --author="authorname" | while read commit_hash do git show --oneline --name-only $commit_hash | tail -n+2 done | sort | uniq 

或者,作为一条线:

 git log --pretty="%H" --author="authorname" | while read commit_hash; do git show --oneline --name-only $commit_hash | tail -n+2; done | sort | uniq 

这将给你一个简单的文件列表,没有别的:

 git log --no-merges --author="Pattern" --name-only --pretty=format:"" | sort -u 

根据需要切换 – 提交–committer。

试试git log --stat --committer=<user> 。 只要把用户名放在--committer=选项上(或者根据需要使用--committer= )。

这将会提交每个提交的所有文件,所以可能会有一些重复。