GitHub: Как показать коммиты для всех файлов в папке - PullRequest
0 голосов
/ 11 октября 2018

Нетрудно найти информацию о том, как просмотреть все файлы в конкретном коммите, но я бы хотел обратного.Я хочу получить список всех файлов в папке и коммит, который их туда поместил.Что-то вроде:

File1.txt   c7b1fd463f40b39d7f199ee650b58a8ba153b64a
File2.md    d9e3ca571d40b38d7fab90cf50b48a82c1d3a32f
File3.c     3207cab3b49da7be5d9a7ef8594bef1935e15fd1
...

Есть ли способ сделать это?

1 Ответ

0 голосов
/ 11 октября 2018

Предполагая, что вам интересно узнать, какой самый последний коммит в ваших файлах, эта команда выдаст его для данного файла: git log -n 1 -- <your_filename>.Для получения желаемого результата вы можете использовать этот фрагмент:

for file in *; do 
  log=$(git log -n 1 --pretty=format:%H -- $file)
  echo -e "$file\t$log"
done

.., который просто просматривает файлы в текущей папке и выполняет команду git, извлекая только SHA.

Если вас интересует первый коммит, который поместил туда файл вместо последнего коммита, который коснулся файла, замените команду git на git log --diff-filter=A --pretty=format:%H (см. ссылка )

Если вы делаете это несколько раз, вы можете поместить фрагмент в сценарий оболочки и добавить к своему $ PATH.

Предупреждение: запуск может занять некоторое время, если файлов слишком много.Вы можете изменить шаблон файла, чтобы ограничить его, если это возможно.

...