我可以让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=
)。
这将会提交每个提交的所有文件,所以可能会有一些重复。