Comando hg de Linux
Manual completo de comandos de Linux
hg es la herramienta de línea de comandos del sistema de control de versiones distribuido Mercurial. Mercurial es un sistema de control de versiones distribuido ligero, escrito en Python, similar a Git pero con un diseño más simple.
Conceptos básicos de hg
Sistema de control de versiones
El sistema de control de versiones (VCS) se utiliza para rastrear el historial de cambios de archivos y admite el desarrollo colaborativo de múltiples personas. Se divide en centralizado (como SVN) y distribuido (como Git, Mercurial).
Distribuido vs centralizado
- Distribuido: cada desarrollador tiene una copia completa del repositorio y del historial
- Centralizado: solo hay un repositorio central que almacena todo el historial
Características de Mercurial
- Diseño de comandos simple e intuitivo
- Alto rendimiento con proyectos grandes
- Soporte multiplataforma
- Sistema de complementos extensible
Instalación y configuración de hg
Métodos de instalación
Ejemplo
sudo apt-get install mercurial
# CentOS/RHEL
sudo yum install mercurial
# macOS (usando Homebrew)
brew install mercurial
Configuración básica
Editar~/.hgrcel archivo:
Ejemplo
username = Your Name
Explicación detallada de comandos comunes de hg
Operaciones de repositorio
Ejemplo
hg init nombre_del_proyecto
# Clonar un repositorio existente
hg clone https://example.com/repo
Seguimiento de archivos
Ejemplo
hg add nombre_del_archivo
# Ver el estado del repositorio
hg status
# Confirmar cambios
hg commit -m "mensaje de confirmación"
Gestión de ramas
Ejemplo
hg branch nombre_de_la_rama
# Cambiar de rama
hg update nombre_de_la_rama
# Ver todas las ramas
hg branches
Historial de cambios
Ejemplo
hg log
# Ver historial de modificaciones de un archivo específico
hg log nombre_del_archivo
# Mostrar el contenido de los cambios
hg diff
Operaciones remotas
Ejemplo
hg pull
# Enviar cambios locales
hg push
# Ver repositorios remotos
hg paths
Uso avanzado de hg
Deshacer cambios
Ejemplo
hg revert nombre_del_archivo
# Revertir a una versión específica
hg update -rnúmero_de_versión
Fusionar ramas
Ejemplo
hg merge nombre_de_la_rama
# Después de resolver conflictos, marcarlos como resueltos
hg resolve -mnombre_del_archivo
Etiquetado
Ejemplo
hg tag nombre_de_la_etiqueta
# Ver todas las etiquetas
hg tags
Comparación entre hg y Git
| Característica | hg (Mercurial) | Git |
|---|---|---|
| Curva de aprendizaje | Más suave | Más pronunciada |
| Diseño de comandos | Más consistente | Más flexible |
| Modelo de ramas | Ramas nombradas | Ramas ligeras |
| Soporte en Windows | Buen soporte nativo | Requiere Git Bash |
| Sistema de complementos | Potente | Potente |
Ejemplos de aplicación práctica
Ejemplo 1: Crear un nuevo proyecto
Ejemplo
mkdir myproject
cd myproject
# 2. Inicializar el repositorio
hg init
# 3. Crear archivo y agregarlo
echo "Hello World" > README.txt
hg add README.txt
# 4. Confirmar la versión inicial
hg commit -m "Initial commit"
Ejemplo 2: Flujo de trabajo colaborativo en equipo
Ejemplo
hg clone https://team-server.com/project
# 2. Crear una rama de características
hg branch feature-x
hg commit -m "Start feature X"
# 3. Después del desarrollo, enviar al servidor
hg push --new-branch
# 4. Otros miembros obtienen las actualizaciones
hg pull
hg update feature-x
Resolución de problemas comunes
Problema 1: Se confirmó contenido incorrecto
Ejemplo
hg rollback
# O crear un cambio inverso
hg backout ID_de_confirmación_incorrecta
Problema 2: Conflictos de fusión
- Los archivos en conflicto contienen marcadores
- Editar el archivo para resolver el conflicto
- Marcar como resuelto
- Completar la confirmación de fusión
Ejemplo
hg commit -m "Merge conflict resolved"
Problema 3: Recuperar archivos eliminados
Ejemplo
hg log --removed
# Restaurar un archivo de una versión específica
hg revert -rnúmero_de_versión nombre_del_archivo
Recomendaciones de mejores prácticas
- Confirmaciones frecuentes: realizar confirmaciones pequeñas, manteniendo la atomicidad de cada confirmación
- Mensajes descriptivos: el mensaje de confirmación debe explicar claramente el contenido de los cambios
- Estrategia de ramas: usar diferentes estrategias para ramas a largo plazo (como desarrollo, publicación) y ramas de características a corto plazo
- Sincronización periódica: ejecutar pull/push con frecuencia para mantenerse sincronizado con el equipo
- Respaldar ramas importantes: enviar ramas clave al servidor remoto
Recursos de aprendizaje recomendados
- Documentación oficial:https://www.mercurial-scm.org/guide
- Libro electrónico «Mercurial: The Definitive Guide»
- Ayuda integrada de hg:
hg helpohg help 命令名 - Tutorial interactivo:https://hginit.com/
Al dominar los comandos de hg, puedes gestionar eficientemente las versiones del proyecto y colaborar con el equipo. Aunque Git es más popular actualmente, el diseño simple de Mercurial lo convierte en una excelente opción en ciertos escenarios.
Otras extensiones