Différence entre Git Fetch et Git Pull

John Wachira 15 février 2024
  1. Qu’est-ce que Git Fetch
  2. Qu’est-ce que Git Pull
  3. Différence entre Git Fetch et Git Pull
Différence entre Git Fetch et Git Pull

Cet article discutera des utilisations pratiques des commandes git pull et git fetch pour voir en quoi elles diffèrent et quand les utiliser.

Qu’est-ce que Git Fetch

Dans notre référentiel distant, nous avons les fichiers indiqués ci-dessous.

Référentiel distant

Attention, nos référentiels distants et locaux sont synchronisés. Modifions le fichier Sample.txt dans le référentiel distant.

Écrivez quelque chose au hasard dans le fichier et validez les modifications.

fichier mis à jour

À ce stade, notre référentiel distant a deux commits, tandis que notre référentiel local en a un. Cela signifie que notre référentiel local a besoin d’une mise à jour.

git fetch est pratique à ce stade. Exécutons une commande git log pour vérifier notre historique de validation dans notre référentiel local.

Historique des commits

Notre dépôt local n’a pas le commit Updated Sample.txt. Nous utilisons git fetch pour vérifier les modifications.

pc@JOHN MINGW64 ~/Git/Delftscopetech (main)
$ git fetch
remote: Enumerating objects: 5, done.
remote: Counting objects: 100% (5/5), done.
remote: Compressing objects: 100% (2/2), done.
remote: Total 3 (delta 0), reused 0 (delta 0), pack-reused 0
Unpacking objects: 100% (3/3), 709 bytes | 2.00 KiB/s, done.
From https://github.com/Wachira11ke/Delftscopetech
   c43169e..2445daf  main       -> origin/main

À partir de la commande ci-dessus, nous pouvons voir un changement dans notre référentiel distant apporté à la branche principale. Nous pouvons appliquer ces modifications à notre dépôt local avec la commande git merge.

pc@JOHN MINGW64 ~/Git/Delftscopetech (main)
$ git merge origin main
Updating c43169e..2445daf
Fast-forward
 Sample.txt | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

Exécutons la commande git log pour vérifier notre historique de validation.

$ git log
commit 2445dafc118748a5cb53c5262b393ab0e1a9e235 (HEAD -> main, origin/main, origin/HEAD)
Author: Wachira11ke <100116527+Wachira11ke@users.noreply.github.com>
Date:   Tue Mar 15 22:07:11 2022 +0300
    Update Sample.txt
    First Update
commit c43169e587ab7ab996087ff460e54032e83030f0
Author: Wachira11ke <100116527+Wachira11ke@users.noreply.github.com>
Date:   Tue Mar 15 21:45:50 2022 +0300
    Second commit
commit b2f77108396c9ae867d8e9d69c575eda99dd1436
Author: Wachira11ke <100116527+Wachira11ke@users.noreply.github.com>
Date:   Mon Feb 21 10:00:23 2022 +0300
    Initial commit

À ce stade, nos dépôts locaux et distants sont synchronisés. Regardons la commande git pull.

Qu’est-ce que Git Pull

Revenons à notre référentiel distant et apportons d’autres modifications à notre fichier. Écrivez un chiffre aléatoire et validez les modifications.

Maintenant, notre référentiel distant a un commit de plus que notre référentiel local. Nous pouvons exécuter la commande git pull pour mettre à jour notre référentiel local.

pc@JOHN MINGW64 ~/Git/Delftscopetech (main)
$ git pull origin main
remote: Enumerating objects: 5, done.
remote: Counting objects: 100% (5/5), done.
remote: Compressing objects: 100% (3/3), done.
remote: Total 3 (delta 0), reused 0 (delta 0), pack-reused 0
Unpacking objects: 100% (3/3), 730 bytes | 3.00 KiB/s, done.
From https://github.com/Wachira11ke/Delftscopetech
 * branch            main       -> FETCH_HEAD
   2445daf..8089f2b  main       -> origin/main
Updating 2445daf..8089f2b
Fast-forward
 Sample.txt | 1 +
 1 file changed, 1 insertion(+)

Notre référentiel local est maintenant à jour avec notre référentiel distant. Nous pouvons conclure que git pull est une commande composée (git fetch + git merge).

Il récupère et fusionne les modifications directement.

Différence entre Git Fetch et Git Pull

git fetch git pull
Vérifie les modifications apportées au référentiel distant. Fusionnez directement les modifications du référentiel distant avec le référentiel local.
Les modifications récupérées sont mises à jour dans un dossier .git. Les modifications sont apportées directement à votre référentiel local.
Vous pouvez revoir les commits avant de fusionner. Vous mettrez à jour les modifications instantanément.
Les conflits apparaissent rarement. Des conflits de fusion sont susceptibles de se produire.
Auteur: John Wachira
John Wachira avatar John Wachira avatar

John is a Git and PowerShell geek. He uses his expertise in the version control system to help businesses manage their source code. According to him, Shell scripting is the number one choice for automating the management of systems.

LinkedIn

Article connexe - Git Pull