Eu tenho um commit c. Quero obter o conjunto de alterações dessa metainformação exata de commit c + e de nenhuma outra. Existe uma maneira mais simples git log -p c^..c
do que fazer isso?
181
A resposta de Michal Trybus é a melhor para simplificar. Mas se você não quer o diff em sua saída, sempre pode fazer algo como:
git log -1 -U c
Isso fornecerá o log de confirmação e você terá controle total sobre todas as opções de log do git para fins de automação. No seu exemplo, você disse que queria o conjunto de alterações. A maneira mais legível de fazer isso seria:
git log --name-status --diff-filter="[A|C|D|M|R|T]" -1 -U c
Ou, se você estiver usando uma versão git maior que 1.8.X, seria:
git log --name-status --diff-filter="ACDMRT" -1 -U c
Isso fornecerá resultados semelhantes a:
commit {c}
Author: zedoo <[email protected]>
Date: Thu Aug 2 {time-stamp}
{short description}
D zedoo/foo.py
A zedoo/bar.py
É claro que você pode filtrar os eventos que achar melhor e formatar o retorno como desejar através dos comandos tradicionais do git-log, que estão bem documentados aqui .
git show --name-only <sha1>
!git show -s <commit>
.-1
faz? Onde está documentado?git help log
na seção "Limite de confirmação". Ou consulte git-scm.com/book/en/v2/…-<number>
limita o número de confirmações na saída.git log -p c -1
faz exatamente isso.fonte
-n 1
ou--max-number=1
e está documentado aqui .Você pode usar para filtrar as alterações pela descrição do commit:
onde
git log --grep='part_of_description'
selecione os commits que contêm 'part_of_description' e-p
mostre o conjunto de alterações de cada commitfonte