Найти фиксацию, где был добавлен файл

Скажем, у меня есть файл foo.js, который был зафиксирован некоторое время назад. я бы хотел просто найдите коммит, где этот файл был добавлен впервые.

После прочтения ответов и моего собственного возиться, это работает для меня

git log --follow --diff-filter=A --find-renames=40% foo.js

Ответ 1

Здесь более простой, "чистый 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

Ответ 2

git log --oneline -- foo.js | tail -n 1

Ответ 3

Следующее может быть не в ваших интересах, но я думаю, что это поможет вам в будущем и является частью отладочной экосистемы в Git:

Вы можете использовать git-blame чтобы показать, какая ревизия и автор последней изменили каждую строку файла, особенно аннотацию файла. Посетите https://git-scm.com/book/en/v2/Git-Tools-Debugging-with-Git

Например,

git blame -L 174,190  xx.py