Por Anónimo (no verificado) , 29 Abril 2026

Dos linajes de diseño

El CLI de Git emergió orgánicamente. El CLI de Mercurial fue diseñado top-down por Matt Mackall.

Consistencia de comandos

Mercurial usa verbo-nombre consistentemente. Las opciones son consistentes: -r siempre significa revisión, -m siempre mensaje. Los verbos de Git se solapan.

Texto de ayuda

hg help commit         # enfocado, corto, relevante
git help commit         # página de manual exhaustiva

Mensajes de error

Mercurial famosamente tiene errores más amigables.

Defaults seguros

Los comandos de Mercurial rara vez destruyen datos sin una extensión explícita. Los defaults de Git son más afilados.

Salida del status

# Mercurial: mínimo, comprensible
hg status
M src/checkout.js
A src/payment.js
? notes.txt

# Git: más estados, más cargado
git status

Comandos de branching

# Mercurial: named branches conceptualmente pesados
hg branch feature/login
hg commit -m "Start"

# Mercurial: bookmarks para branching estilo Git
hg bookmark feature
hg commit -m "Start"

# Git
git checkout -b feature/login
git commit -m "Start"

Reescribir historia

Git: git rebase -i, integrado, sin opt-in. Mercurial: hg histedit, requiere habilitar la extensión.

Hooks y extensiones

Las extensiones de Mercurial se conectan limpiamente vía Python. Los hooks de Git son scripts shell.

Tab completion

Ambos envían completados para shells principales.

El costo de la falta de familiaridad

Para alguien fluido en Git, los comandos renombrados de Mercurial se sienten restrictivos. Para alguien nuevo en ambos, Mercurial es más fácil el primer día.

Mejoras modernas

Git ha estrechado la brecha UX con mejores mensajes de error, switch y restore, partial clone.