Comment vérifier si un dépôt Git est à jour par rapport au dépôt distant

GitGitBeginner
Pratiquer maintenant

💡 Ce tutoriel est traduit par l'IA à partir de la version anglaise. Pour voir la version originale, vous pouvez cliquer ici

Introduction

Dans ce laboratoire (lab), vous apprendrez à vérifier si votre dépôt Git local est à jour par rapport à son équivalent distant. Nous aborderons les étapes essentielles pour y parvenir, en commençant par la récupération (fetch) des dernières modifications depuis le dépôt distant sans modifier votre travail local.

Après l'opération de récupération, vous apprendrez à comparer votre branche locale avec la branche distante pour identifier les éventuelles différences. Enfin, nous explorerons comment utiliser la commande git log pour vérifier visuellement que vos commits locaux sont synchronisés avec le dépôt distant, vous assurant ainsi d'avoir la version la plus récente du projet.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL git(("Git")) -.-> git/CollaborationandSharingGroup(["Collaboration and Sharing"]) git(("Git")) -.-> git/BasicOperationsGroup(["Basic Operations"]) git(("Git")) -.-> git/BranchManagementGroup(["Branch Management"]) git/BasicOperationsGroup -.-> git/status("Check Status") git/BranchManagementGroup -.-> git/log("Show Commits") git/CollaborationandSharingGroup -.-> git/fetch("Download Updates") git/CollaborationandSharingGroup -.-> git/pull("Update & Merge") git/CollaborationandSharingGroup -.-> git/remote("Manage Remotes") subgraph Lab Skills git/status -.-> lab-560101{{"Comment vérifier si un dépôt Git est à jour par rapport au dépôt distant"}} git/log -.-> lab-560101{{"Comment vérifier si un dépôt Git est à jour par rapport au dépôt distant"}} git/fetch -.-> lab-560101{{"Comment vérifier si un dépôt Git est à jour par rapport au dépôt distant"}} git/pull -.-> lab-560101{{"Comment vérifier si un dépôt Git est à jour par rapport au dépôt distant"}} git/remote -.-> lab-560101{{"Comment vérifier si un dépôt Git est à jour par rapport au dépôt distant"}} end

Récupérer les modifications distantes avec git fetch

Dans cette étape, nous allons apprendre à récupérer (fetch) les modifications depuis un dépôt Git distant. Imaginez que vous travaillez sur un projet avec d'autres personnes et qu'elles ont apporté des mises à jour. La commande git fetch est celle que vous utilisez pour obtenir ces mises à jour sans modifier votre propre travail.

Tout d'abord, simulons avoir un dépôt distant. Nous allons faire cela en ajoutant une URL distante à notre dépôt local existant. Dans un scénario réel, il s'agirait de l'URL d'un dépôt hébergé sur une plateforme comme GitHub ou GitLab.

Accédez au répertoire de votre projet si vous n'y êtes pas déjà :

cd ~/project/my-time-machine

Maintenant, ajoutons une URL distante factice. Nous appellerons ce dépôt distant origin, qui est une convention courante.

git remote add origin https://github.com/example/my-time-machine.git

Cette commande ne produit aucun résultat visible, mais elle a configuré votre dépôt local pour qu'il connaisse un dépôt distant nommé origin.

Maintenant, utilisons git fetch pour récupérer des informations sur les modifications dans le dépôt distant. Comme il s'agit d'une URL factice, git fetch ne téléchargera pas réellement de code, mais il simulera le processus et vous montrera ce qu'il ferait.

git fetch origin

Vous pourriez voir un résultat similaire à celui-ci (le résultat exact peut varier en fonction de votre version de Git et de votre configuration) :

fatal: repository 'https://github.com/example/my-time-machine.git/' not found

Ne vous inquiétez pas de l'erreur "repository not found" (dépôt non trouvé). C'est normal car nous avons utilisé une URL factice. L'essentiel est que vous avez exécuté la commande git fetch.

Dans un scénario réel, git fetch origin se connecterait au dépôt distant, téléchargerait tous les nouveaux commits et branches qui n'existent pas dans votre dépôt local et les stockerait dans une zone spéciale. Il ne fusionne (merge) pas ces modifications dans votre branche de travail actuelle. Cela vous permet de voir les modifications apportées par les autres avant de décider de les intégrer à votre propre travail.

Imaginez git fetch comme aller à la poste pour récupérer le courrier. Vous récupérez le courrier (les modifications), mais vous ne l'ouvrez pas et ne le mettez pas sur votre bureau (ne le fusionnez pas avec votre travail) jusqu'à ce que vous soyez prêt.

Comparer le dépôt local et le dépôt distant avec git status

Dans cette étape, nous allons utiliser la commande git status pour voir comment notre dépôt local se compare au dépôt distant après avoir effectué une récupération (fetch).

Accédez au répertoire de votre projet si vous n'y êtes pas déjà :

cd ~/project/my-time-machine

Maintenant, exécutez la commande git status :

git status

Vous devriez voir un résultat similaire à celui-ci :

On branch master
Your branch is up to date with 'origin/master'.

nothing to commit, working tree clean

Décortiquons ce résultat :

  • "On branch master" : Cela vous indique que vous êtes actuellement sur la branche master.
  • "Your branch is up to date with 'origin/master'" : C'est la partie essentielle. Elle indique que votre branche locale master a les mêmes commits que la branche master sur le dépôt distant origin.

Même si notre commande git fetch à l'étape précédente a entraîné une erreur car l'URL distante était factice, Git a tout de même mis à jour ses informations de suivi internes. Dans un scénario réel où git fetch récupère avec succès de nouveaux commits, le résultat de git status vous dirait que votre branche locale est en retard par rapport à la branche distante et vous suggérerait d'utiliser git pull pour intégrer les modifications.

La commande git status est votre fenêtre sur l'état de votre dépôt. Elle vous indique sur quelle branche vous vous trouvez, si votre branche locale est synchronisée avec sa contrepartie distante et si vous avez des modifications non validées (uncommitted) dans votre répertoire de travail ou dans la zone de préparation (staging area). Vérifier régulièrement git status est une bonne habitude pour rester informé de l'état de votre projet.

Utiliser git log pour vérifier les commits synchronisés

Dans cette étape, nous allons utiliser la commande git log pour afficher l'historique des commits et comprendre comment git fetch affecte ce que nous voyons.

Accédez au répertoire de votre projet si vous n'y êtes pas déjà :

cd ~/project/my-time-machine

Exécutez la commande git log pour afficher l'historique des commits :

git log

Vous devriez voir le commit que vous avez effectué dans le laboratoire précédent :

commit a1b2c3d4e5f6g7h8i9j0k1l2m3n4o5p6q7r8s9 (HEAD -> master, origin/master)
Author: Jane Doe <[email protected]>
Date:   Mon Aug 7 10:00:00 2023 +0000

    Send a message to the future

Remarquez que la sortie affiche maintenant (HEAD -> master, origin/master). Cela indique que votre branche locale master (HEAD -> master) et la branche de suivi distante pour origin/master (origin/master) pointent vers le même commit. Cela confirme que votre dépôt local est synchronisé avec le dépôt distant (ou du moins, avec les informations que Git a sur le dépôt distant après la commande git fetch).

Dans un scénario réel où git fetch a récupéré de nouveaux commits depuis le dépôt distant, l'exécution de git log vous montrerait ces nouveaux commits. Ils apparaîtraient dans l'historique des logs, et le pointeur origin/master serait sur le dernier commit du dépôt distant, tandis que votre branche locale master serait toujours sur votre dernier commit local. Cette différence visuelle dans le log vous permet de voir exactement quelles modifications sont disponibles depuis le dépôt distant avant de les fusionner.

La commande git log est essentielle pour comprendre l'historique de votre projet. Elle vous permet de voir la séquence des commits, qui les a effectués, quand ils ont été effectués et les messages de commit. Associée à git fetch, elle vous aide à visualiser la différence entre votre historique local et l'historique du dépôt distant.

Appuyez sur q pour quitter la vue des logs.

Résumé

Dans ce laboratoire, nous avons appris à vérifier si un dépôt Git local est à jour par rapport à son équivalent distant. Nous avons commencé par comprendre le but de git fetch, qui récupère les modifications depuis le dépôt distant sans modifier la copie de travail locale. Nous avons simulé l'ajout d'un dépôt distant, puis exécuté git fetch pour voir comment il interagit avec le dépôt distant.

Les étapes suivantes, qui n'ont pas été entièrement détaillées dans le contenu fourni, consisteraient généralement à utiliser git status pour comparer la branche locale avec la branche distante récupérée et git log pour examiner visuellement l'historique des commits et identifier toute différence, confirmant ainsi si le dépôt local est synchronisé avec le dépôt distant.