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