Найти фиксацию, где был добавлен файл
Скажем, у меня есть файл 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