Eu costumo usar
git log --graph --full-history --all --pretty=format:"%h%x09%d%x20%s"
Com cores (se o seu shell for Bash):
git log --graph --full-history --all --color \
--pretty=format:"%x1b[31m%h%x09%x1b[32m%d%x1b[0m%x20%s"
Isso imprimirá uma representação baseada em texto como esta:
* 040cc7c (HEAD, master) Manual is NOT built by default
* a29ceb7 Removed offensive binary file that was compiled on my machine and was hence incompatible with other machines.
| * 901c7dd (cvc3) cvc3 now configured before building
| * d9e8b5e More sane Yices SMT solver caller
| | * 5b98a10 (nullvars) All uninitialized variables get zero inits
| |/
| * 1cad874 CFLAGS for cvc3 to work successfully
| * 1579581 Merge branch 'llvm-inv' into cvc3
| |\
| | * a9a246b nostaticalias option
| | * 73b91cc Comment about aliases.
| | * 001b20a Prints number of iteration and node.
| |/
|/|
| * 39d2638 Included header files to cvc3 sources
| * 266023b Added cvc3 to blast infrastructure.
| * ac9eb10 Initial sources of cvc3-1.5
|/
* d642f88 Option -aliasstat, by default stats are suppressed
(Você pode simplesmente usar git log --format=oneline, mas isso vinculará as mensagens de confirmação aos números, o que parece menos bonito no IMHO).
Para criar um atalho para esse comando, convém editar seu ~/.gitconfigarquivo:
[alias]
gr = log --graph --full-history --all --color --pretty=tformat:"%x1b[31m%h%x09%x1b[32m%d%x1b[0m%x20%s%x20%x1b[33m(%an)%x1b[0m"
No entanto, como Sodel the Vociferous observa nos comentários, esse comando de formatação longo é difícil de memorizar. Normalmente, não é um problema, pois você pode colocá-lo no ~/.gitconfigarquivo. No entanto, se você às vezes precisar fazer login em uma máquina remota em que não possa modificar o arquivo de configuração, poderá usar uma versão mais simples, mas mais rápida, para digitar:
git log --graph --oneline