git lg

git log

Eu uso git logregularmente para ver os commits anteriores. Todos nós sabemos como o git logcomando é útil . Mas é feio;

commit cd85270b35d625ddebd74c44782b39a5b8286587
Author: Ian Greulich <----@--------.com>
Date: Thu Sep 26 16:47:16 2013 -0400

WR
-184085: new image f/medical plan cart

commit
296ec25ecfe26ef6a0f89f28b9390607dd4dd689
Author: Ian Greulich <----@--------.com>
Date: Thu Sep 26 16:04:07 2013 -0400

WR
-184085: fixes from QA

commit cd6a0e61b55e564c2af880ca616f2b799e7ac40f

Merge: 7de6ced 3c50403
Author: Tony Malatanos <----@--------.com>
Date: Wed Sep 25 17:51:03 2013 -0400

Merge pull request #4 in UXG/goblin from ~IGREULICH/goblin-fork:develop to develop

Cenário

Mas há muito que podemos fazer para tornar isso … mais significativo;

Entrar git lg

Aliasing uma fantasia logem seu ~/.gitconfig;

[alias]
lg
= log --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset'

quando você executa git lg, obtém uma saída muito melhor;

* cd85270 - (HEAD, origin/feature/legacy, origin/WR-184085_fix, feature/legacy, WR-184085_fix) WR-184085: new image f/medical plan cart (17 hours ago) <Ian Greulich>
* 296ec25 - WR-184085: fixes from QA (18 hours ago) <Ian Greulich>
* cd6a0e6 - Merge pull request #4 in UXG/goblin from ~IGREULICH/goblin-fork:develop to develop (2 days ago) <Tony Malatanos>
|\
| * 3c50403 - WR-184085: tweak edit/remove link positions (2 days ago) <Ian Greulich>
| * c63b408 - WR-184085: fix nth-type-of (2 days ago) <Ian Greulich>
| * 6bfd1bd - WR-184085: tweak style to fix inconsistancies (2 days ago) <Ian Greulich>
| * 4fe8f72 - (origin/WR-184085) WR-184085: finish the style changes, added new images (2 days ago) <Ian Greulich>
| * 0ef58e4 - WR-184085: update plan listing page (4 days ago) <Ian Greulich>
| * e1b8a16 - WR-184085: update progress indicator, some of plan comparison page (4 days ago) <Ian Greulich>
| * 876f2c3 - WR-184085: update hope page center content (4 days ago) <Ian Greulich>
| * 308bf10 - WR-184085: update footer (4 days ago) <Ian Greulich>
| * df71560 - WR-184085: add oswald font, update main header text styles (4 days ago) <Ian Greulich>
| * ea45ca0 - WR-184085: update header nav (7 days ago) <Ian Greulich>

Cenário

Muito mais legal, certo?

--graphdá a você o gráfico que você vê à esquerda, o * indica o branch para o qual o commit foi feito, mas --format=<blah>é onde a mágica realmente acontece.

--format

Basicamente, --formatpermite que você manipule a saída logem essencialmente qualquer formato de sua preferência (consulte git log --helppara obter mais detalhes). Eu tenho o seguinte;

  • %Cred%h%Cresetimprime o sha: abreviado %h, em vermelho, depois redefine a cor
  • - imprime um traço
  • %C(yellow)%d%Cresetimprime os nomes das referências: %dem amarelo, depois redefine a cor
  • %s imprime o assunto ou submete a mensagem
  • %Cgreen(%cr)imprime a data de confirmação, relativa: %crem verde e parênteses
  • %C(bold blue)<%an>%Cresetimprime o nome do autor: %anem azul e colchetes, depois redefine a cor

Isso torna a saída de lgmuito mais útil e fácil de ler.