Preciso de um comando de encanamento para imprimir a mensagem de confirmação de um determinado envio - nada mais, nada menos.
Preciso de um comando de encanamento para imprimir a mensagem de confirmação de um determinado envio - nada mais, nada menos.
Respostas:
Não é "encanamento", mas fará exatamente o que você deseja:
$ git log --format=%B -n 1 <commit>
Se você precisa absolutamente de um comando "encanamento" (não sabe por que isso é um requisito), pode usar rev-list
:
$ git rev-list --format=%B --max-count=1 <commit>
Embora rev-list
também imprima o commit sha (na primeira linha), além da mensagem de commit.
%s%b
em vez de %B
(em uma caixa de Linux)
%B
é um especificador correto (pelo menos, no Git 1.7.2, não sabe quando foi adicionado).
%B
foi adicionado algum tempo após 1.7.1 (provavelmente em 1.7.1.1).
$ git log --format=%B -n 1 <commit> | cat -
Isso fornecerá a mensagem de confirmação e nenhuma confirmação de sha, e você poderá "canalizá-la". Na verdade, eu uso isso como parte do meu script de IC.
git show
é mais um comando de encanamento do que git log
e tem as mesmas opções de formatação:
git show -s --format=%B SHA1
%s
vez de %B
.
Não encanamento, mas eu tenho estes no meu .gitconfig:
lsum = log -n 1 --pretty=format:'%s'
lmsg = log -n 1 --pretty=format:'%s%n%n%b'
Isso é "último resumo" e "última mensagem". Você pode fornecer uma confirmação para obter o resumo ou a mensagem dessa confirmação. (Estou usando o 1.7.0.5, então não tenho% B.)
Isso fornecerá uma lista muito compacta de todas as mensagens por um tempo especificado.
git log --since=1/11/2011 --until=28/11/2011 --no-merges --format=%B > CHANGELOG.TXT
Eu comecei a usar
git show-branch --no-name <hash>
Parece ser mais rápido do que
git show -s --format=%s <hash>
Ambos dão o mesmo resultado
git show -s --oneline <commit>