Commandes Git essentielles pour GitLab
Pourquoi apprendre les commandes Git ?
Savoir utiliser GitLab via son interface web est utile mais le véritable travail de développeur se passe dans le terminal. Les commandes Git sont le langage qui vous permet de communiquer avec GitLab pour envoyer votre code, fusionner vos modifications avec celles de vos collègues ou récupérer la toute dernière version d'un projet.
Imaginez que Git est un journal de bord ultra précis. Chaque commande que vous tapez écrit une ligne dans ce journal pour dire qui a changé quoi et quand. Sans ces commandes, travailler à plusieurs sur les mêmes fichiers deviendrait vite un chaos total.
Installation par système
L'installation de Git est rapide et permet à votre terminal (ou invite de commande) de comprendre les instructions que nous allons utiliser tout au long de ce cours.
Sur Linux (Ubuntu/Debian)
C'est le système le plus simple pour installer Git car il utilise le gestionnaire de paquets natif :
sudo apt-get update
sudo apt-get install git
Sur Windows
Pour Windows, la méthode la plus courante est d'utiliser l'installateur officiel :
- Téléchargez l'exécutable sur le site officiel git-scm.com.
- Lancez l'installation et conservez les options par défaut (elles sont optimisées pour débuter).
- Une fois terminé, vous disposerez de Git Bash, un terminal qui simule l'environnement Linux sur votre PC.
Sur macOS
Si vous avez installé Xcode, Git est probablement déjà présent. Sinon, vous pouvez l'installer via Homebrew :
brew install git
Vérifier que Git est prêt
Une fois l'installation terminée, quel que soit votre système, ouvrez un terminal et tapez la commande suivante pour confirmer que tout fonctionne :
git --version
Résultat attendu :
git version 2.43.0 (ou supérieur)
Information
Maintenant que l'outil est installé sur votre machine, la toute première étape est de configurer votre identité (nom et email) pour que GitLab sache qui enregistre le code.
Configuration de votre identité
Avant de commencer à coder, vous devez indiquer à Git qui vous êtes. Cela permet à GitLab d'afficher votre nom et votre adresse email à côté de vos modifications (commits). C'est une étape que l'on ne fait qu'une seule fois après l'installation.
Définir le nom et l'email
Ouvrez votre terminal et tapez les commandes suivantes en remplaçant les valeurs par les vôtres :
git config --global user.name "VOTRE_NOM"
git config --global user.email "votre_email@example.com"
Vérifier la configuration
Pour être certain que Git a bien enregistré vos informations, vous pouvez lister la configuration actuelle :
git config --global --list
Résultat :
user.name=VOTRE_NOM
user.email=votre_email@example.com
core.repositoryformatversion=0
core.filemode=true
core.bare=false
Démarrer un nouveau projet avec Git Init
Initialiser votre dépôt local
Avant d'envoyer quoi que ce soit sur GitLab, vous devez transformer un simple dossier de votre ordinateur en un dépôt Git. Sans cette étape, Git ne surveille pas vos fichiers et ne peut pas enregistrer l'historique de vos modifications.
La commande git init est l'acte de naissance de votre projet. Elle crée un dossier caché nommé .git à la racine de votre répertoire. C'est dans ce dossier que Git va stocker toutes les versions successives de votre code.
C'est la toute première commande à taper lorsque vous commencez un nouveau développement "à partir de rien" sur votre machine.
Créer le dossier du projet
Ouvrez votre terminal et créez un nouveau répertoire pour votre application, puis entrez dedans :
mkdir mon-super-projet
cd mon-super-projet
Lancer l'initialisation
Tapez maintenant la commande magique pour activer Git :
git init
Résultat :
Initialized empty Git repository in /votre/chemin/mon-super-projet/.git/
Information
Par défaut, Git peut nommer votre première branche master. Pour respecter les standards modernes, il est recommandé de la renommer immédiatement en main avec la commande : git branch -M main.
Créer le premier fichier et lier à GitLab
Une fois le dépôt initialisé, vous pouvez créer votre premier fichier (souvent un README.md) et préparer votre premier envoi vers GitLab :
echo "# Mon Projet" >> README.md
git add README.md
git commit -m "Initial commit : création du projet"
Maintenant que votre projet local est initialisé et possède son premier commit, vous pouvez passer à la configuration de votre identité et à l'utilisation des branches pour organiser votre travail.
Envoyer vos modifications sur GitLab
Une fois que vous avez modifié vos fichiers, il faut les préparer avant de les envoyer sur le serveur. C'est un processus en trois étapes : vérifier le Status, préparer avec Add et envoyer vos modifications avec le Push.
Vérifier l'état des fichiers
Cette commande vous montre quels fichiers ont été modifiés mais ne sont pas encore enregistrés :
git status
Résultat :
On branch ma-nouvelle-fonctionnalite
Changes not staged for commit:
(use "git add ..." to update what will be committed)
(use "git restore ..." to discard changes in working directory)
modified: index.html
Untracked files:
(use "git add ..." to include in what will be committed)
style.css
no changes added to commit (use "git add" and/or "git commit -a")
Préparer et envoyer
Pour ajouter tous les fichiers modifiés et les nouveaux fichiers à la zone de préparation, on utilise généralement :
git add .
Maintenant que vos fichiers sont prêts, vous devez créer un commit. C'est une sorte de "point de sauvegarde" dans l'histoire de votre projet, accompagné d'un message explicatif :
git commit -m "Description claire de vos modifications"
Créer le lien avec le serveur (Remote)
Attention : Avant de pouvoir envoyer votre code pour la toute première fois, il y a une manipulation indispensable que beaucoup oublient. Vous devez dire à votre dossier local : "Ton serveur de référence se trouve à cette adresse". Sans cela, Git est comme un facteur qui a un colis mais pas d'adresse de livraison.
Allez sur la page de votre projet GitLab, copiez l'URL (en HTTPS ou SSH) et tapez cette commande dans votre terminal :
git remote add origin https://gitlab.votre-domaine.com/votre-nom/votre-projet.git
Explication : Le mot origin est simplement le petit nom (un alias) que l'on donne à votre serveur distant pour ne pas avoir à retaper toute l'URL à chaque fois.
Pousser vers le serveur (Push)
Ensuite, envoyez vos modifications vers votre dépôt GitLab :
git push origin ma-nouvelle-fonctionnalite
Résultat :
Enumerating objects: 5, done.
Counting objects: 100% (5/5), done.
Delta compression using up to 8 threads
Compressing objects: 100% (3/3), done.
Writing objects: 100% (3/3), 328 bytes | 328.00 KiB/s, done.
Total 3 (delta 1), reused 0 (delta 0), pack-reused 0
To https://gitlab.com/votre-projet/repo.git
* [new branch] ma-nouvelle-fonctionnalite -> ma-nouvelle-fonctionnalite
Cloner un projet : Récupérer le dépôt localement
Pourquoi cloner ?
Pour commencer à travailler, vous ne pouvez pas simplement copier-coller des fichiers. Vous devez cloner le dépôt. Cette opération crée une copie exacte du projet GitLab sur votre ordinateur, tout en conservant le lien avec le serveur pour pouvoir envoyer vos modifications plus tard.
C'est l'étape qui permet de passer du "vide" à un dossier de travail complet contenant tout l'historique du projet.
Le clonage se fait généralement via une adresse URL que vous récupérez directement sur l'interface de GitLab.
Récupérer l'URL de clonage
Rendez-vous sur la page de votre projet sur GitLab. Cliquez sur le bouton bleu Clone et copiez l'adresse sous "Clone with HTTPS" ou "Clone with SSH" (on va configurer nos clés SSH dans le futur chapitre).
Lancer la commande dans le terminal
Ouvrez votre terminal, placez-vous dans le dossier où vous voulez ranger vos projets et tapez la commande suivante :
git clone https://gitlab.com/votre-nom/votre-projet.git
Résultat :
Cloning into 'votre-projet'...
remote: Enumerating objects: 150, done.
remote: Counting objects: 100% (150/150), done.
Receiving objects: 100% (150/150), 45.20 KiB | 1.20 MiB/s, done.
Information
Une fois le clonage terminé, un nouveau dossier portant le nom du projet est créé. Pensez à entrer dedans avec la commande cd votre-projet avant de lancer d'autres commandes Git !
Maintenant que vous avez le code sur votre machine, vous pouvez utiliser la commande Pull pour récupérer les mises à jour de vos collègues.
Travailler avec les dépôts et les branches
Une branche Git est comme un univers parallèle de votre code. La branche principale s'appelle aujourd'hui main. Créer une nouvelle branche vous permet de tester de nouvelles idées ou de développer une fonctionnalité sans casser le code principal qui est en production.
Récupérer le code (Pull)
Avant de commencer à travailler, il faut toujours récupérer les nouveautés poussées par vos collègues pour éviter les conflits :
git pull origin main
Résultat :
From https://gitlab.com/votre-projet/repo
* branch main -> FETCH_HEAD
Already up to date.
Gérer les branches
Pour créer une nouvelle branche et vous déplacer dessus immédiatement, la commande moderne recommande d'utiliser switch avec l'option -c :
git switch -c ma-nouvelle-fonctionnalite
Résultat :
Switched to a new branch 'ma-nouvelle-fonctionnalite'
Si vous voulez simplement revenir sur la branche principale :
git switch main
Fusionner et nettoyer
Quand votre travail est terminé et validé, vous voulez que vos modifications rejoignent la branche principale. C'est ce qu'on appelle fusionner les branches (Merge).
Préparer du contenu sur votre branche
Avant de fusionner, nous allons créer un fichier concret pour simuler un ajout réel. Assurez-vous d'être sur votre branche de travail, puis créez un fichier index.html :
git switch ma-nouvelle-fonctionnalite
echo "<h1>Bienvenue sur mon projet GitLab</h1>" > index.html
git add index.html
git commit -m "Ajout de la page d'accueil index.html"
Fusionner des branches
Pour ramener les changements de votre branche vers main, vous devez d'abord basculer sur le tronc principal, puis lancer la commande de fusion Git :
git switch main
git merge ma-nouvelle-fonctionnalite
Résultat :
Updating 34b1c23..a1b2c3d
Fast-forward
index.html | 1 +
1 file changed, 1 insertion(+)
create mode 100644 index.html
Annuler des changements
Si vous avez fait une erreur et que vous voulez supprimer vos modifications non enregistrées pour retrouver un dossier propre, utilisez la commande moderne :
git restore .
Pour supprimer définitivement les fichiers qui ne sont pas suivis par Git (comme des fichiers temporaires générés par erreur) :
git clean -f
Information
Toutes ces commandes sont la base de votre quotidien sur GitLab. Ne vous inquiétez pas si vous ne les retenez pas toutes par cœur au début, la pratique créera des automatismes.
Conclusion
Vous maîtrisez maintenant les outils indispensables pour interagir avec votre serveur. Ces commandes Git vous permettent de garder votre travail organisé et de collaborer sans friction avec d'autres développeurs.
Cependant, pour envoyer votre code sur GitLab de manière sécurisée sans avoir à taper votre mot de passe à chaque fois, il existe une méthode beaucoup plus professionnelle : les clés SSH. C'est ce que nous allons configurer ensemble dans le chapitre suivant.
Espace commentaire
Écrire un commentaire
Rejoignez la discussion
Vous devez être connecté pour poster un message.
26 commentaires
Pensez à bien vérifier votre branche active avec
git branchavant de lancer des opérations destructrices commegit resetougit clean.Fais un
git fetch. Ça récupère les infos du serveur sans modifier tes fichiers locaux.Comment savoir si mon code est à jour par rapport à mes collègues sans tout télécharger ?
Retire le
--globalet lance la config dans le dossier du projet spécifique. Ça créera une config locale prioritaire.Le
git config --global user.emails'applique à tous les projets ? Je veux un mail différent pour le boulot.C'est parce que ton repo local et celui de GitLab n'ont pas la même base. Force le merge si tu es sûr de toi :
J'ai un souci avec
git pull. Ça me dit "refusing to merge unrelated histories".Oui :
Attention, ne fais ça que si tu n'as pas encore poussé le commit sur le serveur.
J'ai fait un
git commit -mavec une faute de frappe. Je peux corriger le message sans faire un nouveau commit ?Utilise
git log --oneline --graphpour avoir une vue visuelle de ton historique, c'est bien plus lisible.Comment je peux voir les logs de mes commits proprement ?
Merci pour le tuto, le
git remote add originm'a sauvé. J'avais oublié de lier le dépôt local.Si tu veux abandonner le merge, c'est simple :
Ça remet ton repo dans l'état avant la tentative de fusion.
Je suis bloqué sur le
git merge. Ça me sort un conflit surindex.html. Je fais quoi pour revenir en arrière ?Il ne vire que les fichiers non trackés. Fais toujours un
git clean -ndavant pour voir ce qui va être supprimé. Prudence avant le -f.Le
git clean -fest dangereux ou pas ? J'ai peur de supprimer des fichiers de config par erreur.Oui,
git switcha été introduit dans des versions plus récentes. Mets à jour ton client ou utilise l'ancienne syntaxe :Sur Windows, Git Bash me dit que la commande
git switchn'existe pas. Je suis en version 2.20. C'est normal ?Utilise
git restore --staged <fichier>. Ça sort le fichier du staging sans supprimer tes modifs locales.J'ai fait un
git add .un peu trop rapide. Comment je retire un fichier spécifique de la zone de staging sans tout annuler ?C'est normal, Git ne push pas la branche automatiquement. Utilise cette commande pour lier ta branche locale au serveur :
Petite question : quand je fais
git switch -c, ça crée bien la branche localement, mais comment je la pousse sur GitLab pour que mes collègues la voient ?Le 403 signifie que tu n'as pas les droits. Tu utilises HTTPS ? À ne jamais faire en prod, passe rapidement aux clés SSH pour éviter les soucis d'authentification récurrents.
Impossible de faire mon premier
git push. J'ai une erreur 403 Forbidden. J'ai bien configuré mon remote pourtant.Vérifie que tu es bien à la racine de ton projet. Si ton dossier
.gitest corrompu, tente ungit initpour réinitialiser les références sans toucher aux fichiers.