Se você apenas deseja encontrar a confirmação mais recente, não deseja git-log
, git-rev-list
que lista os objetos de confirmação que alteram esse arquivo, nesse caminho de confirmação, começando pelo mais recente (cronologicamente). Simplificando:
git rev-list -1 <commit> <filename>
No git-rev-list
seu caso, você apenas fornece:
- O número de confirmações a serem incluídas, ou -1, apenas para as mais recentes,
- A ramificação (ou ID de confirmação) da qual começar a olhar para trás, HEAD , se você já estiver nela, ou --all, se você quiser todas as confirmações conhecidas, e
- O caminho relativo para o seu arquivo.
Isso apenas retorna o ID de confirmação mais recente no ramo atual para alterar esse arquivo, por exemplo: 215095e2e338525be0baeeebdf66bfbb304e7270
Para um exemplo mais complexo, você pode usar nomes de tags e até referências remotas e incluir nomes de caminhos relativos com caracteres curinga, por exemplo:
git rev-list origin/user/bob/testbranch -1 src/bfiles/*.txt
... O que lhe diria qual foi a alteração mais recente na correspondência curinga no histórico dessa ramificação. As opções para rev-list são extremas, é um dos comandos de encanamento mais importantes, para que você possa incluir ou excluir praticamente qualquer critério que possa imaginar.
Obviamente, consulte a página de manual do git-rev-list (1) .
--all
opção