Visualizing Your Git Repository
Quase metade das minhas interações com o Git acontecem na linha de comando. Mas quando eu quero entender o que está acontecendo, eu uso uma ferramenta visual de Git. Eu ainda uso o GitX, mas nos anos desde que eu escrevi este site pela primeira vez, muitas outras ferramentas foram criadas. Use aquilo que funcionar para você.
O ponto principal de usar um visualizador é ajudar a entender seu histórico de branches. Por exemplo, para listar todos os commits do seu repositório na linha de comando, você poderia digitar git log --oneline --abbrev-commit --all
—o que vai te dar esta visão plana:
(Obrigado a @cflipse por lembrar que --pretty=oneline --branches=*
poderia ser reduzido a --oneline --all
!)

Claro como lama, não?
Ou, você pode acrescentar --graph
a esse comando, que vai te mostrar uma visão um pouco mais útil:
git log --oneline --abbrev-commit --all --graph

Muito melhor!
(Obrigado a @mjdominus e @JRGarcia por me lembrarem sobre a opção --graph
!)
Se você quiser ver os rótulos de branch e tag, adicione --decorate
:
git log --oneline --abbrev-commit --all --graph --decorate

Eu vou precisar de um layout de site mais largo se isso continuar...
(Obrigado de novo a @JRGarcia pela dica do --decorate
!)
Você também pode acrescentar --color
para embelezar a visualização um pouco mais (desculpe, não tive tempo de fazer uma captura de tela enquanto escrevia isso):
git log --oneline --abbrev-commit --all --graph --decorate --color
E, na verdade, eu tenho um alias de shell no meu repositório dotfiles que faz tudo isso:
alias gg='git log --oneline --abbrev-commit --all --graph --decorate --color'
Ou, como um leitor anônimo avisou, você pode configurar um alias de Git para fazer a mesma coisa:
git config --global alias.graph "log --graph --oneline –decorate=short"
Mas geralmente eu simplesmente uso o GitX, que mostra toda a mesma informação numa visão gráfica mais clara:

Eu gosto das cores bonitas.
- About This Site
- Git Makes More Sense When You Understand X
- Example 1: Kent Beck
- Example 2: Git for Ages 4 and Up
- Example 3: Homeomorphic Endofunctors
- Example 4: LSD and Chainsaws
- The Internet Talks Back!
- Graph Theory
- Seven Bridges of Königsberg
- Places To Go, and Ways to Get There
- Nodes and Edges
- Attaching Labels to Nodes
- Attaching Labels to Edges
- Directed Versus Undirected Graphs
- Reachability
- Graphs and Git
- Visualizing Your Git Repository ←HEAD
- References
- The Reference Reference
- Making Sense of the Display
- Garbage Collection
- Experimenting With Git
- References Make Commits Reachable
- My Humble Beginnings
- Branches as Savepoints
- Use Your Targeting Computer, Luke
- Testing Out Merges
- Rebase From the Ground Up
- Cherry-Picking Explained
- Using 'git cherry-pick' to Simulate 'git rebase'
- A Helpful Mnemonic for 'git rebase' Arguments
- The End