Numérique et Sciences Informatiques > Projets et Démarche de Projet Informatique > Travail Collaboratif et Outils > Gestion de versions (Git - notions)
Introduction à Git : Gestion de Versions Collaborative
Ce guide complet introduit Git, un outil essentiel pour la gestion de versions de code en collaboration. Il est spécialement conçu pour les élèves de lycée en Numérique et Sciences Informatiques, en couvrant les concepts fondamentaux, les commandes de base et les flux de travail collaboratifs.
Qu'est-ce que Git ?
Git est un système de contrôle de version distribué (DVCS). Imaginez Git comme un « historique » détaillé de toutes les modifications apportées à vos fichiers. Il permet de suivre chaque changement, de revenir à des versions antérieures et de collaborer efficacement avec d'autres personnes sur un même projet. Contrairement aux anciens systèmes centralisés, chaque développeur possède une copie complète de l'historique du projet, rendant le travail plus flexible et résistant aux problèmes.
Pourquoi utiliser Git ?
Installation de Git
Avant de commencer à utiliser Git, vous devez l'installer sur votre ordinateur. Voici les instructions générales :
Après l'installation, vérifiez que Git est correctement installé en ouvrant un terminal ou une invite de commandes et en tapant `git --version`. Vous devriez voir la version de Git installée.
Configuration initiale
Après l'installation, configurez Git avec votre nom d'utilisateur et votre adresse e-mail. Ces informations seront utilisées pour identifier vos contributions dans l'historique du projet. Ouvrez un terminal et exécutez les commandes suivantes :git config --global user.name "Votre Nom"
git config --global user.email "votre.email@example.com"
Vous pouvez vérifier votre configuration avec :git config --list
Les commandes Git de base
Voici les commandes Git les plus couramment utilisées :git init
: Initialise un nouveau dépôt Git dans le répertoire courant.git clone [URL]
: Clone un dépôt Git existant depuis une URL.git add [fichier]
: Ajoute un fichier à la zone de préparation (staging area).git commit -m "[message]"
: Enregistre les modifications préparées avec un message de commit.git status
: Affiche l'état du dépôt, les fichiers modifiés et ceux qui sont prêts à être commités.git log
: Affiche l'historique des commits.git branch
: Liste, crée ou supprime des branches.git checkout [branche]
: Bascule vers une autre branche.git merge [branche]
: Fusionne une branche dans la branche courante.git push [remote] [branche]
: Envoie les commits locaux vers un dépôt distant.git pull [remote] [branche]
: Récupère les modifications depuis un dépôt distant et les fusionne dans la branche courante.
Le workflow Git typique
Voici un workflow Git typique pour le développement collaboratif :git clone [URL]
git branch [nom_de_la_branche]
puis git checkout [nom_de_la_branche]
(ou git checkout -b [nom_de_la_branche]
pour les deux étapes).git add [fichier]
git commit -m "[message]"
git push origin [nom_de_la_branche]
Branches : Le pouvoir de la divergence et de la convergence
Les branches sont un concept fondamental de Git. Elles permettent de créer des copies parallèles du projet, vous permettant de travailler sur de nouvelles fonctionnalités, de corriger des bugs ou d'expérimenter sans affecter la branche principale (généralement appelée `main` ou `master`).
Pourquoi utiliser les branches ?
La commande git branch
vous permet de créer, lister et supprimer des branches. La commande git checkout
permet de basculer entre les branches. La commande git merge
permet de fusionner les modifications d'une branche dans une autre.
Conflits de fusion et comment les résoudre
Un conflit de fusion se produit lorsque Git ne peut pas fusionner automatiquement les modifications de deux branches car les mêmes lignes ont été modifiées de manière différente. Lorsque cela se produit, Git vous indique les fichiers qui sont en conflit.
Comment résoudre les conflits ?<<<<<<< HEAD
, =======
et >>>>>>> [nom_de_la_branche]
.git add [fichier]
.git commit -m "Résolution des conflits de fusion"
.
Ce qu'il faut retenir
init
, clone
, add
, commit
, status
, log
, branch
, checkout
, merge
, push
, pull
.
FAQ
-
Quelle est la différence entre `git pull` et `git fetch` ?
`git fetch` récupère les modifications depuis un dépôt distant sans les fusionner dans votre branche locale. `git pull` récupère les modifications et les fusionne automatiquement dans votre branche locale. -
Comment annuler un commit ?
Il existe plusieurs façons d'annuler un commit, selon que vous l'avez déjà poussé vers un dépôt distant ou non. Pour annuler le dernier commit localement (sans le supprimer de l'historique) :git revert HEAD
. Pour modifier le dernier commit :git commit --amend
. -
Comment ignorer certains fichiers avec Git ?
Créez un fichier `.gitignore` à la racine de votre dépôt et listez les noms des fichiers ou des répertoires à ignorer (un par ligne). Par exemple :*.log
temp/
.DS_Store