A resposta abaixo usagit log :
Mencionei uma abordagem semelhante em 2009 com " Incapaz de mostrar uma árvore Git no terminal ":
git log --graph --pretty=oneline --abbrev-commit
Mas o completo que tenho usado está em " Como exibir o nome da marca e o nome da filial usando o git log --graph " (2011):
git config --global alias.lgb "log --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset%n' --abbrev-commit --date=relative --branches"
git lgb
Resposta original (2010)
git show-branch --list chega perto do que você está procurando (com o pedido topo)
--topo-order
Por padrão, os desvios e seus commits são mostrados em ordem cronológica inversa.
Essa opção faz com que eles apareçam em ordem topológica (ou seja, confirmações descendentes são mostradas antes dos pais).
Mas a ferramenta git wtf também pode ajudar . Exemplo:
$ git wtf
Local branch: master
[ ] NOT in sync with remote (needs push)
- Add before-search hook, for shortcuts for custom search queries. [4430d1b] (edwardzyang@...; 7 days ago)
Remote branch: origin/master (git@gitorious.org:sup/mainline.git)
[x] in sync with local
Feature branches:
{ } origin/release-0.8.1 is NOT merged in (1 commit ahead)
- bump to 0.8.1 [dab43fb] (wmorgan-sup@...; 2 days ago)
[ ] labels-before-subj is NOT merged in (1 commit ahead)
- put labels before subject in thread index view [790b64d] (marka@...; 4 weeks ago)
{x} origin/enclosed-message-display-tweaks merged in
(x) experiment merged in (only locally)
NOTE: working directory contains modified files
git-wtf mostra a você:
- Como sua filial se relaciona com o repositório remoto, se for uma filial de rastreamento.
- Como sua ramificação se relaciona com ramificações sem recurso ("versão"), se for uma ramificação de recurso.
- Como o seu ramo se relaciona com os ramos do recurso, se for um ramo da versão
git_tree. Ele produzirá algo comoarc flowfaz aqui: stackoverflow.com/questions/54227968/… . Talvez um dia eu possa mesclá-lo ao próprio git.