Вот более простой «чистый Git» способ сделать это без необходимости в конвейере:
git log --diff-filter=A -- foo.js
Проверьте документацию. Вы можете сделать то же самое для Удаленных, Модифицированных и т. Д.
https://git-scm.com/docs/git-log#Documentation/git-log.txt---diff-filterACDMRTUXB82308203
У меня есть удобный псевдоним для этого, потому что я всегда забываю это:
git config --global alias.whatadded 'log --diff-filter=A'
Это делает это так просто, как:
git whatadded -- foo.js
Приведенная ниже строка содержит рекурсивный поиск по подкаталогам $PWD
для foo.js
без необходимости указывать абсолютный или относительный путь к файлу, и при этом файл не должен находиться в том же каталоге, что и файл.$PWD
git log --diff-filter=A -- **foo.js
git log --diff-filter=A -- *subfolder/foo.js
git log --diff-filter=A -- foo.js
не печатало зафиксировать ID / хеш для STDOUT в моем терминале, а мне пришлосьисточник
--follow
.Следующее может быть не в ваших интересах, но я думаю, что это поможет вам в будущем и является частью отладочной экосистемы в Git:
Вы можете использовать,
git-blame
чтобы показать, какая ревизия и автор последней изменяли каждую строку файла, особенно аннотацию файла. Посетите https://git-scm.com/book/en/v2/Git-Tools-Debugging-with-GitНапример,
источник