Como posso mostrar uma saída de log git com (pelo menos) esta informação:
* author
* commit date
* change
Quero compactado para uma linha por entrada de log. Qual é o formato mais curto possível para isso?
(tentei, --format=oneline
mas isso não mostra a data)
git
formatting
logging
Jesper Rønn-Jensen
fonte
fonte
Respostas:
git log --pretty=format:"%h%x09%an%x09%ad%x09%s"
fez o trabalho. Isso gera:
Inspirado pela pergunta stackoverflow: "saída do log git como svn ls -v" , descobri que era possível adicionar os parâmetros exatamente necessários.
Para encurtar a data (não mostrando a hora), use
--date=short
Caso você esteja curioso para saber quais são as diferentes opções:
%h
= abreviado commit hash%x09
= tab (caractere para o código 9)%an
= nome do%ad
autor = data do autor (o formato respeita - data = opção)%s
= assuntoDe kernel.org/pub/software/scm /git/docs/git-log.html (seção FORMATOS BONITOS) pelo comentário do Vivek.
fonte
date=short
sugestões sugeridas por cdunn2001 em outra respostagit log --pretty=format:"%h %ad%x09%an%x09%s" --date=short
git log --pretty=format:'%C(yellow)%h %Cred%ad %Cblue%an%Cgreen%d %Creset%s' --date=short
alias glop="git log --pretty=format:'%C(yellow)%h|%Cred%ad|%Cblue%an|%Cgreen%d %Creset%s' --date=short | column -ts'|' | less -r"
Eu uso essas duas configurações .gitconfig:
% ad é a data do autor, a qual pode ser substituída
--date
ou a opção especificada na sub-rotina [log] em .gitconfig. Gosto da data relativa, porque dá uma sensação imediata de quando as coisas foram enviadas. A saída é assim:É claro que tudo é colorido, portanto é fácil distinguir as várias partes de uma linha de log. Também é o padrão ao digitar
git log
devido à seção [formato].ATUALIZAÇÃO DE 2014: Como o git agora oferece suporte ao preenchimento, tenho uma boa alteração na versão acima:
Este direito alinha as datas relativas e o esquerdo alinha os nomes dos autores, o que significa que você terá uma aparência de coluna fácil de ver.
Captura de telaATUALIZAÇÃO 2016: Como a assinatura de confirmação do GPG está se tornando uma coisa, pensei em atualizar esta postagem com uma versão que inclui a verificação de assinatura (na captura de tela é a carta magenta logo após o envio). Uma breve explicação da bandeira:
Outras mudanças incluem:
git log -g
agora contém o seletor de reflog.3 years, 4..
)%<(7,trunc)
ou verificar o recurso gmail .mailmap para encurtar nomes de commiter )Aqui está a configuração:
No geral, o alinhamento das colunas agora é preservado muito melhor às custas de alguns caracteres (espero) inúteis. Sinta-se à vontade para editar se você tiver alguma melhoria, eu adoraria fazer com que a cor da mensagem dependa se um commit é assinado, mas não parece que isso seja possível.
Captura de telafonte
tig
resposta fornece interatividade sem a configuração necessária, mas essa é brilhante - fornece a saída de uma linha solicitada (com cor para inicializar!) Usando o comando padrão 'git log'. Muito agradável.>
<
marcas. Tentei adicionar%m
ao formato, mas depois>
aparece sempre, mesmo para um normalgit log
. Alguma pista de como as marcas se comportam normalmente com o formato?--oneline
é apenas um apelido para--pretty=oneline
.format.pretty
é o formato bonito padrão, mas não há como substituir oformat.oneline
aaik. O que eu faria é omitir apretty = shortlog
linha na configuração e criar um alias para execuçãogit log --pretty=shortlog
.use
--date=
para definir um formato de datafonte
Sinta-se livre para usar este:
Observe o
-7
no final, para mostrar apenas as últimas 7 entradas.Veja:
fonte
--date=short
pode ser adicionado para torná-lo mais curto.git log
sempre mostra o histórico da ramificação com check-out no momento.%d
para restaurar "nomes de referência" como(HEAD -> master)
.reset
vez deauto
?tig é uma alternativa possível ao uso do comando git log , disponível nas principais distribuições de código aberto * nix.
No debian ou no ubuntu, tente instalar e executar da seguinte maneira:
(tig é instalado)
(o log é exibido no pager da seguinte forma, com o hash do commit atual exibido na parte inferior)
Como o markdown não suporta a coloração de texto, imagine: coluna 1: azul; coluna 2: verde; coluna 3: cor do texto padrão. Última linha, destacada. Pressione Q ou q para sair.
tig
justifica as colunas sem arestas irregulares , que uma guia ascii (% x09) não garante.Para um formato de data curto, pressione maiúscula D (nota: d em minúscula abre uma visualização diferencial). Configure-o permanentemente adicionando
show-date = short
a ~ / .tigrc; ou em uma[tig]
seção em .git / configure ou ~ / .gitconfig.Para ver uma alteração inteira :
Como o tig é separado do git e aparentemente * nix específico, provavelmente é necessário que o cygwin seja instalado no Windows. Mas para fedora Acredito que os comandos instalar são
$ su
,(enter root password)
,# yum install tig
. Para FreeBSD tentativa% su
,(enter root password)
,# pkg_add -r tig
.A propósito, o tig é bom para muito mais do que uma visualização rápida do log: Screenshots & Manual
fonte
tig
no meu console simplesmente me dá um erro-bash: tig: command not found
pact install tig
ou
... consultando a resposta do cdunn2001 acima: eu perderia o e-mail do autor e incluiria apenas o nome do autor, conforme Jesper e knittl, mas de acordo com a ideia do cdunn2001 de manter a saída em colunas de largura constante para facilitar a leitura ( boa ideia!). No lugar de uma coluna justificada à esquerda separada para o nome do autor, no entanto, coloco esse sinalizador no final do comando entre parênteses ou o desloco com um pipe. (Pode realmente ser qualquer caractere que sirva como ajuda visual na leitura da saída ... embora faça sentido evitar barras invertidas ou anteriores para reduzir a confusão da saída com um diretório ou algo assim.)
Saída de amostra:
fonte
Use alias predefinido do git, ou seja:
Criado uma vez por comando:
https://git-scm.com/book/tr/v2/Git-Basics-Git-Aliases
Ou mais colorido com gráfico:
fonte
Resultado:
Material de largura constante é o primeiro. A parte menos importante - o domínio do email - é a última e fácil de filtrar.
fonte
Para mostrar os commits que realizei e que estão prontos para enviar,
A saída se parece com:
Onde a primeira coluna aparece em amarelo, e o 'H' 'm' e 't' em parentese mostram a CABEÇA, o mestre e o tronco e aparecem nas cores "--decorate" usuais
Aqui está com quebras de linha para que você possa ver o que está fazendo:
Eu aliasse para "encenado" com:
(Existe uma maneira mais fácil de escapar disso? Foi um pouco complicado descobrir o que precisava ser escapado)
fonte
Todas as sugestões acima mencionadas usam
%s
espaço reservado para o assunto. Eu recomendo usar%B
porque a%s
formatação preserva novas linhas e a mensagem de confirmação de várias linhas aparece achatada.fonte
Execute isso na pasta do projeto:
E se quiser, adicione esta linha ao seu ~ / .gitconfig:
fonte
Tente o git log --pretty = fuller, ele mostrará: - Autor: Data do autor: Confirmar: Data de confirmação:
Espero que isto ajude.
fonte