La siguiente respuesta utiliza git log:
Mencioné un enfoque similar en 2009 con " No se puede mostrar un árbol Git en la terminal ":
git log --graph --pretty=oneline --abbrev-commit
Pero el completo que he estado usando está en " Cómo mostrar el nombre de la etiqueta y el nombre de la rama usando 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
Respuesta original (2010)
git show-branch --list se acerca a lo que está buscando (con el orden topográfico)
--topo-order
Por defecto, las ramas y sus confirmaciones se muestran en orden cronológico inverso.
Esta opción los hace aparecer en orden topológico (es decir, los commits descendientes se muestran antes que sus padres).
Pero la herramienta git wtf también puede ayudar . Ejemplo:
$ 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 te muestra:
- Cómo se relaciona su rama con el repositorio remoto, si es una rama de seguimiento.
- Cómo se relaciona su rama con ramas sin características ("versión"), si es una rama con características.
- Cómo se relaciona su rama con las ramas de características, si es una rama de versión
git_tree. Producirá algo como loarc flowhace aquí: stackoverflow.com/questions/54227968/… . Tal vez algún día incluso pueda fusionarlo con git.