Виноваты в уровне файлов / папок? - PullRequest
1 голос
/ 08 апреля 2019

Возможно ли git blame на уровне файлов / папок вместо уровня "построчно"?

Команда git blame обычно показывает последний коммит, влияющий на каждую строку в данном документе, но мне интересно, есть ли у вас список того, что было последним коммитом, влияющим на каждый файл. Судя по опциям, невозможно использовать git blame, но есть ли какая-нибудь другая команда, которая может сделать что-то подобное?

РЕДАКТИРОВАТЬ: В идеале я хотел бы получить список с именами файлов, где для каждого файла мы также получаем хеш коммита, имя человека, который редактировал файл последним, а также дату.

1 Ответ

1 голос
/ 08 апреля 2019

Не уверен, что это соответствует вашим потребностям, но

git log -1 --pretty=format:"%an" -- path/to/file

выведет имя последнего человека, который изменил файл (или каталог).

Редактировать после комментариев:

Чтобы зациклить файлы каталога в контексте bash, используйте xargs:

git ls-files path/to/directory/ | xargs -n 1 git log -1 --pretty=format:"%h %an %cd" --

... и, опционально, немного легче для глаз с оправданным средним столбцом:

git ls-files path/to/directory/ | xargs -n 1 git log -1 --pretty=format:"%h %<(20,trunc)%an %cd" --
...