Найдите последний коммит, который изменил файл с заданным именем в Git

У меня есть определенное имя файла, и я хочу найти последний (= самый последний) коммит, который изменил файл с этим именем в Git. Обновлено: файл тем временем был удален, поэтому он не является частью текущего рабочего дерева.

Я нашел различные потоки, которые находят самую последнюю фиксацию для определенного файла по определенному пути, однако я ищу способ найти файлы с этим именем по любому пути в репозитории.


3
50
2

Ответы:

git log $filename.

и если вам нужны только последние изменения каждого файла. попробуйте git log -1 $filename.


Решено

git log -n 1 -- **/<filename> <filename>

или git rev-list -1 <commit> -- **/<filename> <filename>

git log и git rev-list позволяют вам предоставлять шаблоны глобуса. Эти шаблоны glob будут соответствовать файлам проверенного коммита, а не вашему текущему рабочему каталогу. Это означает, что он найдет правильный коммит, даже если вы удалили файл.

Аналогичный вопрос для конкретного файла по определенному пути.

git log предоставит более подробную информацию и может быть настроен, git rev-list предоставит вам только идентификатор фиксации. См. этот ответ для получения более подробной информации о git rev-list.

Настройте git log с помощью --pretty=format:%H, чтобы отображался только хеш коммита, как git rev-list, как в этом ответе.