Если вы просто хотите найти самый последний коммит, то вам не нужен git-log
, вам нужен git-rev-list
список объектов фиксации, изменяющих этот файл, в этом пути фиксации, начиная с самого последнего (в хронологическом порядке). Проще говоря:
git rev-list -1 <commit> <filename>
В git-rev-list
вашем случае вы просто поставляете:
- Количество коммитов для включения или -1 только для самых последних,
- Ветвь (или идентификатор коммита), с которой нужно начать оглядываться назад, HEAD, если вы уже на ней, или --all, если вы хотите все известные коммиты, и
- Относительный путь к вашему файлу.
Это просто возвращает самый последний идентификатор фиксации в текущей ветви, чтобы изменить этот файл, например: 215095e2e338525be0baeeebdf66bfbb304e7270
Для более сложного примера вы можете использовать имена тегов и даже удаленные ссылки и включать относительные имена путей с подстановочными знаками, например:
git rev-list origin/user/bob/testbranch -1 src/bfiles/*.txt
... Что скажет вам, что было самым последним изменением в сопоставлении символов подстановки в истории этой ветви. Опции для rev-list являются экстремальными, это одна из самых важных команд, поэтому вы можете включать или исключать практически любые критерии, которые вы можете себе представить.
Конечно, обратитесь к странице руководства git-rev-list (1) .
--all
опцию.