Как собрать всех авторов группы файлов в Git? - PullRequest
0 голосов
/ 07 мая 2020

Мне нужна помощь от гуру git blame / bash / awk. Я хочу получить список всех людей, которые фигурируют в git виновности каждого файла в определенной группе файлов. Пример:

  • файлы A и B;
  • git виноват перечисляет Джона, Терри и Мерри как авторов различных строк в A;
  • git blame перечисляет Джейн и Майка как авторов различных строк в B;
  • команда принимает в качестве входных файлов A и B и возвращает Джейн, Джона, Терри, Мерри и Майка.

Итак, моя идея такова:

  • Я завершаю sh свою работу над веткой;
  • выполняю команду, которая принимает на вход все файлы, которые были изменены в этой ветке по сравнению с master и возвращает список всех авторов строк в этих файлах.

Ответы [ 2 ]

1 голос
/ 07 мая 2020

Вы можете использовать log, а затем передать по каналу sort

git log --all --pretty=format:"%an" -- path/to/fileA path/to/fileB | sort -u

Если вам нужен псевдоним для этого, go для

git config --global alias.who '!f() { git log --all --pretty=format:"%aN" -- $1 | sort -u; }; f'

# then just
git who "path/to/fileA path/to/fileB"
0 голосов
/ 07 мая 2020

Чтобы перечислить авторов всех строк в файле с путем $path.

git blame --porcelain -- $path | sed -n -e '/^author /s/^author //p' | uniq -u

Для работы с группой файлов, например A и B,

for path in A B;do
    git blame --porcelain -- $path
done | sed -n -e '/^author /s/^author //p' | uniq -u
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...