Comprendre Git et enregistrer ses changements

Auteur : Publié le

En bref : Git est un système de gestion de versions distribué, c’est-à-dire un outil qui conserve l’historique des modifications apportées aux fichiers. Il permet de comparer les versions successives, de rétablir un contenu antérieur et de réunir le travail de plusieurs personnes. Il fonctionne localement sur votre ordinateur ; ni GitHub ni une connexion à Internet ne sont nécessaires pour les opérations de base.

À quoi sert Git ?

Sans gestion de versions, on se retrouve facilement avec des fichiers nommés projet-final, projet-final2 et projet-corrige. Git remplace ces copies manuelles par un historique organisé. Chaque étape enregistrée volontairement peut être décrite, examinée et comparée à une autre.

Git est particulièrement utile pour le code source, la configuration, la documentation et les articles enregistrés en texte brut, par exemple en Markdown. Il peut aussi conserver des photos ou des documents bureautiques, mais il ne montre généralement pas leurs modifications aussi clairement que les différences entre des lignes de texte. Le stockage de gros fichiers binaires fréquemment modifiés demande une réflexion supplémentaire.

Par exemple, vous modifiez un formulaire de contact et, après cette correction, les notifications ne fonctionnent plus. Si les étapes précédentes ont été enregistrées dans Git, vous pouvez vérifier exactement ce qui a changé et annuler la modification défectueuse. Vous n’avez pas à reconstituer la version précédente de mémoire.

Dépôt, commit et branche : les notions de base

Un dépôt contient l’historique du projet ainsi que les informations nécessaires à Git pour gérer les versions. Dans un projet local classique, ces données se trouvent dans le répertoire caché .git, à côté des fichiers de travail que vous modifiez.

Un commit est un état enregistré des fichiers suivis, relié à l’historique antérieur. Il possède un identifiant, des informations sur son auteur et un message descriptif. Un bon message, comme « Corriger la validation de l’adresse e-mail », explique mieux l’objectif du changement que « Corrections ». Git ne crée pas automatiquement de commit chaque fois que vous enregistrez un fichier dans l’éditeur.

La zone de préparation, également appelée index ou staging area, permet de sélectionner les modifications à inclure dans le prochain commit. Vous pouvez ainsi modifier plusieurs fichiers, mais enregistrer séparément la correction d’un bug et la mise à jour de la documentation. L’historique sera ensuite plus facile à comprendre.

Une branche, ou branch, est une ligne de travail distincte dans le dépôt. Vous pouvez y développer une nouvelle fonctionnalité sans modifier immédiatement la version principale du projet. La fusion, ou merge, réunit les modifications de différentes branches.

Le terme distribué signifie qu’un clonage classique du dépôt vous donne une copie locale de son historique, et pas seulement accès aux fichiers d’un serveur. Il existe aussi des clones dont l’historique est limité. Dans un usage habituel, consulter les modifications enregistrées et créer des commits ne nécessite pas de connexion à un serveur central.

Git et GitHub : quelle différence ?

Git est un outil de gestion de versions. GitHub est un service qui, entre autres, héberge des dépôts Git et propose des fonctions de collaboration, comme la revue des modifications ou le signalement de bugs. GitLab et Bitbucket remplissent un rôle similaire ; vous pouvez aussi héberger un dépôt sur votre propre serveur.

Un dépôt distant est une seconde copie du dépôt, accessible à une adresse donnée. La commande push y envoie les commits locaux, tandis que fetch récupère les informations et l’historique de cette copie distante sans les intégrer à la branche courante. La commande pull récupère les modifications, puis les intègre : la méthode d’intégration dépend de la configuration et des options utilisées.

Créer un commit ne publie donc pas votre travail sur Internet. De même, envoyer des modifications à un service d’hébergement ne les rend pas nécessairement publiques : leur visibilité dépend des droits d’accès au dépôt.

Pour commencer : enregistrer vos premières modifications

Installez Git en suivant les instructions adaptées à votre système dans la documentation officielle du projet. Dans le terminal, vous pouvez vérifier l’installation avec la commande git --version. Vous pouvez aussi utiliser une interface graphique ou les fonctions Git de votre éditeur, mais le processus de base reste le même.

Dans un nouveau répertoire de test, exécutez :

git init
git config user.name "Jean Dupont"
git config user.email "jean (at) example.com"

Ces paramètres d’auteur s’appliquent au dépôt courant et ne servent pas à vous connecter. Choisissez l’adresse en connaissance de cause : les informations sur l’auteur font partie des commits et peuvent être visibles par d’autres personnes une fois l’historique partagé.

Créez le fichier README.md dans votre éditeur, saisissez une courte description du projet et enregistrez-le. Exécutez ensuite :

git status
git add README.md
git diff --staged
git commit -m "Ajouter la description du projet"
git log --oneline

git status affiche l’état des fichiers. git add prépare le contenu indiqué pour son enregistrement, et git diff --staged permet de le vérifier avant le commit. Les deux dernières commandes enregistrent cette étape du travail et affichent un historique abrégé.

Collaboration et limites de Git

Lors d’un travail collaboratif, Git peut réunir automatiquement de nombreuses modifications indépendantes. Mais si deux personnes modifient le même passage de manière incompatible, un conflit de fusion peut survenir. Il faut alors déterminer manuellement le contenu à conserver, marquer les fichiers résolus avec git add et terminer l’opération. Git ne juge pas quelle version est correcte sur le fond.

N’ajoutez pas de mots de passe, de clés d’accès ou d’autres secrets au dépôt. Le fichier .gitignore indique quels fichiers non suivis Git doit ignorer, mais il ne supprime pas les données déjà enregistrées dans l’historique. Une clé divulguée doit être révoquée ou remplacée ; la supprimer uniquement de la dernière version ne suffit pas.

Git ne remplace pas non plus une sauvegarde complète : il ne protège pas automatiquement les modifications non enregistrées dans son historique ni les fichiers situés hors du dépôt. Pour commencer, entraînez-vous à créer deux commits dans un répertoire de test, puis comparez-les avec la commande git diff HEAD~1 HEAD. Vous verrez précisément comment Git présente les différences entre les étapes enregistrées.

À lire aussi : Qu’est-ce que l’AGI ?

À lire aussi

Découvrez comment PHP-FPM traite les requêtes PHP, son rôle face au serveur web et comment adapter ses processus au trafic.
Découvrez BIND, logiciel libre de serveur DNS : ses rôles, la gestion des domaines et les cas où le déployer vous-même.
Découvrez le registre polonais REGON, son numéro, ses différences avec NIP et KRS et comment vérifier les données d’une entreprise.