Могу ли я получить git, чтобы сообщить мне все файлы, измененные одним пользователем?
Я хотел бы, чтобы git предоставил мне список всех файлов, измененных одним пользователем, во всех коммитах.
Мой конкретный вариант использования - это то, что я участвовал в проекте i18n ruby on rails, и мы хотим знать, какие файлы уже были сделаны и какие файлы еще нужно сделать. Пользователи, о которых идет речь, только сделали работу на i18n, а не на остальной части базы кода. Таким образом, информация должна быть в git, но я не уверен, как ее получить.
Ответы
Ответ 1
Это не единственный способ, но он работает:
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
Ответ 2
Это даст вам простой список файлов, ничего больше:
git log --no-merges --author="Pattern" --name-only --pretty=format:"" | sort -u
Переключатель --author для --committer при необходимости.
Ответ 3
Попробуйте git log --stat --committer=<user>
. Просто поместите имя пользователя в параметр --committer=
(или используйте --author=
, если это необходимо).
Это будет выплевывать все файлы на фиксацию, поэтому, вероятно, будет некоторое дублирование.