Commande hg sous Linux
Référence complète des commandes Linux
hg est l'outil en ligne de commande du système de gestion de versions distribué Mercurial. Mercurial est un système de gestion de versions distribué léger écrit en Python. Il est similaire à Git mais avec une conception plus simple.
Concepts de base de hg
Système de gestion de versions
Un système de gestion de versions (VCS) est utilisé pour suivre l'historique des modifications de fichiers et prendre en charge le développement collaboratif par plusieurs personnes. Il se divise en systèmes centralisés (par exemple, SVN) et en systèmes distribués (par exemple, Git, Mercurial).
Distribué vs centralisé
- Distribué: chaque développeur dispose d'une copie complète du dépôt et de son historique.
- Centralisé: un seul dépôt central stocke tout l'historique.
Fonctionnalités de Mercurial
- Conception de commandes simple et intuitive
- Haute performance pour la gestion de grands projets
- Prise en charge multiplateforme
- Système de plugins extensible
hg Installation et configuration
Méthodes d'installation
Exemple
sudo apt-get install mercurial
# CentOS/RHEL
sudo yum install mercurial
# macOS (avec Homebrew)
brew install mercurial
Configuration de base
Édition~/.hgrcfichier :
Exemple
username = Votre nom
hg Commandes courantes expliquées
Opérations sur les dépôts
Exemple
hg init project_name
# Cloner un dépôt existant
hg clone https://example.com/repo
Suivi des fichiers
Exemple
hg add filename
# Afficher l'état du dépôt
hg status
# Valider les modifications
hg commit -m "message de validation"
Gestion des branches
Exemple
hg branch branch_name
# Changer de branche
hg update branch_name
# Afficher toutes les branches
hg branches
Historique des modifications
Exemple
hg log
# Afficher l'historique des modifications d'un fichier spécifique
hg log filename
# Afficher le contenu des modifications
hg diff
Opérations à distance
Exemple
hg pull
# Pousser les modifications locales
hg push
# Afficher les dépôts distants
hg paths
Utilisation avancée de hg
Annulation des modifications
Exemple
hg revert filename
# Revenir à une version spécifique
hg update -rrevision_number
Fusion de branches
Exemple
hg merge branch_name
# Après avoir résolu les conflits, marquer comme résolu
hg resolve -mfilename
Étiquetage
Exemple
hg tag tag_name
# Voir toutes les étiquettes
hg tags
Comparaison entre hg et Git
| Fonctionnalité | hg (Mercurial) | Git |
|---|---|---|
| Courbe d'apprentissage | Plus douce | Plus abrupte |
| Conception des commandes | Plus cohérent | Plus flexible |
| Modèle de branches | Branches nommées | Branches légères |
| Prise en charge de Windows | Bonne prise en charge native | Nécessite Git Bash |
| Système de plugins | Puissant | Puissant |
Exemples d'applications pratiques
Exemple 1 : Création d’un nouveau projet
Exemple
mkdir myproject
cd myproject
# 2. Initialiser le dépôt
hg init
# 3. Créez des fichiers et ajoutez-les
echo "Hello World" > README.txt
hg add README.txt
# 4. Validez la version initiale
hg commit -m "Initial commit"
Exemple 2 : Flux de travail de collaboration d'équipe
Exemple
hg clone https://team-server.com/project
# 2. Créez une branche de fonctionnalité
hg branch feature-x
hg commit -m "Start feature X"
# 3. Après le développement, poussez vers le serveur
hg push --new-branch
# 4. Les autres membres récupèrent les mises à jour
hg pull
hg update feature-x
Solutions aux problèmes courants
Problème 1 : Contenu incorrect validé
Exemple
hg rollback
# Ou créez un changement inverse
hg backout wrong_commit_id
Problème 2 : Conflits de fusion
- Les fichiers en conflit contiendront des marqueurs
- Modifiez le fichier pour résoudre les conflits
- Marquer comme résolu
- Terminer le commit de fusion
Exemple
hg commit -m "Conflit de fusion résolu"
Problème 3 : Récupération de fichiers supprimés
Exemple
hg log --removed
# Restaurer un fichier à partir d'une version spécifique
hg revert -rrevision_number filename
Suggestions de bonnes pratiques
- Commitez fréquemment: Commitez par petites étapes, gardez chaque commit atomique
- Messages descriptifs: Les messages de commit doivent clairement décrire les modifications
- Stratégie de branches: Utilisez des stratégies différentes pour les branches de longue durée (par ex., développement, publication) et les branches de fonctionnalité de courte durée
- Synchronisation régulière: Exécutez fréquemment pull/push pour rester synchronisé avec l’équipe
- Sauvegardez les branches importantes: Poussez les branches critiques vers le serveur distant
Ressources d'apprentissage recommandées
- Documentation officielle :https://www.mercurial-scm.org/guide
- Livre électronique « Mercurial: The Definitive Guide »
- Aide intégrée de hg :
hg helpouhg help 命令名 - Tutoriel interactif :https://hginit.com/
En maîtrisant les commandes hg, vous pouvez gérer efficacement les versions du projet et collaborer avec votre équipe. Bien que Git soit actuellement plus populaire, la conception simple de Mercurial en fait un excellent choix dans certains scénarios.
Autres extensions