Le guide ultime pour maîtriser Git et ses commandes

Partager sur :

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.

Articles similaires

Installer Hadoop sur Ubuntu

Hadoop est un cadre open-source essentiel pour le traitement de grandes quantités de données dans un environnement distribué. Si vous cherchez à l’installer sur Ubuntu,