Git est un outil incontournable pour les développeurs modernes, permettant une gestion efficace des versions de code source. Que vous soyez débutant ou développeur expérimenté, comprendre les commandes de Git peut grandement améliorer votre flux de travail. Dans cet article, nous vous proposons un guide complet des commandes Git que vous devez absolument connaître pour optimiser vos projets de développement.
Qu’est-ce que Git ?
Développé par Linus Torvalds en 2005, Git est un système de contrôle de version distribué qui facilite la collaboration entre développeurs. Il permet de suivre l’évolution d’un projet en conservant un historique détaillé des modifications, de revenir à des versions antérieures si nécessaire, et de fusionner les contributions de plusieurs personnes de manière harmonieuse.
Ce dont vous avez besoin
Avant de plonger dans les commandes Git, assurez-vous d’avoir Git installé sur votre système. Git est disponible pour les plateformes Linux, Windows, Solaris et Mac. Une fois installé, vous serez prêt à explorer les commandes qui vous permettront de gérer efficacement vos projets.
Les concepts de base de Git
Repository (dépôt)
Un dépôt Git est le lieu de stockage de votre projet contenant tous les fichiers et leur historique de modification. On distingue deux types de dépôts : le dépôt local situé sur votre machine et le dépôt distant généralement hébergé sur un serveur comme GitHub ou GitLab.
Commit
Un commit représente une version du projet à un moment donné. Il contient toutes les modifications apportées aux fichiers depuis le dernier commit, ainsi qu’un message décrivant ces changements. Les commits sont organisés sous forme de chaîne, chaque commit pointant vers son parent.
Branche
La branche est une série de commits qui représentent l’évolution d’une partie du projet. La branche principale, appelée « master » ou « main », contient l’historique de la version stable du projet. Les branches secondaires permettent de travailler sur des fonctionnalités ou des corrections sans impacter la branche principale.
Merge (fusion)
La fusion consiste à intégrer les changements d’une branche dans une autre. Git compare les deux branches, détecte les modifications et crée un nouveau commit qui combine ces changements.
Configurer Git
Avant de commencer à utiliser Git, il est important de configurer votre environnement en fournissant votre nom et votre adresse e-mail. Cela permettra d’associer vos commits à votre identité. Pour ce faire, exécutez les commandes suivantes :
git config --global user.name "Votre nom" git config --global user.email "votre-email@example.com"
Liste des principales commandes Git
Commandes pour gérer un dépôt local
git init
git init
initialise un nouveau dépôt Git dans le répertoire actuel. C’est le point de départ pour créer un projet Git ou commencer à suivre un projet existant.
mkdir mon-projet
cd mon-projet
git init
Cela crée un nouveau dépôt Git dans le répertoire mon-projet
.
git add
La commande git add
ajoute des fichiers ou des modifications au prochain commit. Vous pouvez spécifier des fichiers individuels ou tous les fichiers modifiés.
git add fichier.txt
Pour ajouter tous les fichiers modifiés :
git add .
git clone
Pour copier un dépôt distant vers votre machine locale, utilisez git clone
. Cette commande crée une copie complète du dépôt, y compris son historique.
git clone https://github.com/mon-utilisateur/mon-depot.git
Vous pouvez également cloner un dépôt local :
git clone /chemin/vers/dépôt
git status
Affiche l’état actuel du dépôt, indiquant les fichiers modifiés, les fichiers prêts à être commités, et les fichiers non suivis.
git status
git commit
Valide les modifications ajoutées à l’index et crée un nouveau commit avec un message descriptif.
git commit -m "Ajout d'une nouvelle fonctionnalité"
Si vous avez oublié d’ajouter certains fichiers, vous pouvez ajouter et commit en une seule commande avec -a
:
git commit -a -m "Modification et ajout de fichiers"
git log
Affiche l’historique des commits pour la branche actuelle. Vous pouvez utiliser des options pour personnaliser l’affichage.
git log
Pour afficher les commits dans un format plus compact :
git log --oneline
Commandes pour gérer les branches
git branch
Liste toutes les branches locales ou crée une nouvelle branche. Pour lister les branches :
git branch
git branch nouvelle-branche
git branch -d branche-a-supprimer
git checkout
Permet de changer de branche ou de revenir à un commit spécifique. Pour passer à une autre branche :
git checkout nouvelle-branche
Pour créer et passer directement à une nouvelle branche :
git checkout -b nouvelle-branche
Pour revenir à un commit antérieur :
git checkout 1234abcd
git merge
Fusionne les modifications d’une branche dans la branche courante. Assurez-vous de vous positionner sur la branche cible avant de fusionner.
git checkout branche-cible
git merge branche-source
git pull
Récupère les dernières modifications depuis un dépôt distant et les fusionne avec votre branche locale.
git pull origin main
git push
Envoie vos commits locaux vers un dépôt distant. Assurez-vous d’être sur la branche que vous souhaitez pousser.
git push origin main
Commandes pour collaborer avec d’autres développeurs
git remote
Gère les dépôts distants associés à votre dépôt local. Pour lister les dépôts distants :
git remote -v
Pour ajouter un dépôt distant :
git remote add origin https://github.com/mon-utilisateur/mon-depot.git
git fetch
Récupère les informations du dépôt distant sans les fusionner. Utile pour voir les nouvelles branches ou les mises à jour avant de les intégrer.
git fetch origin
git diff
Affiche les différences entre les versions des fichiers ou entre le dépôt local et distant. Pour voir les changements non commités :
git diff
Pour comparer deux branches :
git diff branche-source..branche-cible
git rebase
Réapplique les commits de votre branche actuelle sur une nouvelle base. Utile pour maintenir un historique linéaire.
git rebase main
Si des conflits apparaissent pendant le rebase, résolvez-les puis continuez avec :
git rebase --continue
git stash
Met temporairement de côté les modifications en cours pour pouvoir changer de branche ou faire d’autres tâches sans perdre les changements non commités.
git stash
Pour appliquer les modifications mises en cache plus tard :
git stash apply
git cherry-pick
Applique un commit spécifique d’une autre branche à votre branche actuelle. Identifiez le commit avec son identifiant, puis appliquez-le.
git cherry-pick 1234abcd
Commandes pour comparer et revenir en arrière
git tag
Utilisé pour marquer des commits spécifiques avec des étiquettes. Cela est souvent utilisé pour marquer des versions de logiciels.
git tag v1.0.0
git reset
Réinitialise l’index et le répertoire de travail à l’état du dernier commit.
git reset --hard HEAD
git rm
Supprime des fichiers de l’index et du répertoire de travail.
git rm fichier-a-supprimer.txt
git stash
Enregistre temporairement les modifications en cours pour permettre de travailler sur autre chose sans perdre ces modifications.
git stash
git stash apply
git show
Affiche des informations détaillées sur un commit ou un objet Git.
git show commit-id
git ls-tree
Affiche une vue arborescente des fichiers dans un commit ou une branche, y compris les informations sur les objets.
git ls-tree HEAD
git cat-file
Affiche des informations sur les objets Git en utilisant leur identifiant SHA-1.
git cat-file -p commit-id
git grep
Recherche des expressions ou des mots dans le contenu des fichiers suivis par Git.
git grep "texte-recherché"
gitk
Lance une interface graphique pour visualiser l’historique des commits du dépôt.
gitk
git instaweb
Lance un serveur web pour visualiser le dépôt via une interface web.
git instaweb --httpd=webrick
git gc
Nettoie et optimise le dépôt en supprimant les fichiers inutiles et en compressant les objets.
git gc
git archive
Crée une archive (ZIP ou TAR) d’une branche ou d’un commit spécifique.
git archive --format=tar master > archive.tar
git prune
Supprime les objets non référencés du dépôt pour libérer de l’espace.
git prune
git fsck
Vérifie l’intégrité du système de fichiers Git et identifie les objets corrompus.
git fsck
L’apprentissage et la maîtrise des commandes Git sont essentiels pour être efficace dans vos projets de développement. N’hésitez pas à vous référer régulièrement à cette liste pour vous familiariser avec les différentes commandes et améliorer votre workflow.