Récupérer les modifications distantes avec git fetch
Dans cette étape, nous allons apprendre à récupérer les modifications depuis un dépôt distant. Imaginez que vous travaillez sur un projet avec d'autres personnes et qu'elles ont apporté des mises à jour. Vous devez récupérer ces mises à jour sur votre machine locale. La commande git fetch
vous permet de le faire. Elle télécharge les dernières modifications depuis un dépôt distant sans les fusionner dans votre branche actuelle.
Tout d'abord, simulons avoir un dépôt distant. Nous allons créer un dépôt nu (bare repository) puis l'ajouter en tant que dépôt distant à notre dépôt existant my-time-machine
.
cd ~/project
mkdir remote-repo.git
cd remote-repo.git
git init --bare
Cela crée un dépôt Git nu, qui est généralement utilisé comme dépôt central à partir duquel les développeurs poussent (push) et tirent (pull) les modifications.
Maintenant, revenons à notre dépôt my-time-machine
et ajoutons ce dépôt nu en tant que dépôt distant.
cd ~/project/my-time-machine
git remote add origin ~/project/remote-repo.git
Nous avons nommé notre dépôt distant origin
, ce qui est une convention courante. Vérifions maintenant que le dépôt distant a été ajouté correctement.
git remote -v
Vous devriez voir une sortie similaire à celle-ci, montrant les URL de récupération (fetch) et d'envoi (push) pour le dépôt distant origin
:
origin /home/labex/project/remote-repo.git (fetch)
origin /home/labex/project/remote-repo.git (push)
Maintenant, simulons une modification dans le dépôt distant. Comme il s'agit d'un dépôt nu, nous ne pouvons pas directement effectuer des commits dedans. Au lieu de cela, nous allons simuler une modification en créant un nouveau fichier dans le répertoire du dépôt nu.
cd ~/project/remote-repo.git
echo "This is a remote change" > remote_file.txt
Maintenant, revenons à votre dépôt my-time-machine
.
cd ~/project/my-time-machine
À ce stade, votre dépôt local ne sait rien du fichier remote_file.txt
qui a été ajouté au dépôt distant simulé. C'est là que la commande git fetch
entre en jeu.
Exécutez la commande git fetch
:
git fetch origin
Vous pourriez ne pas voir beaucoup de sortie, ou vous pourriez voir quelque chose indiquant que de nouveaux objets ont été reçus.
Ce que git fetch origin
a fait, c'est de se connecter au dépôt distant origin
et de télécharger tous les nouveaux commits et objets qui ne sont pas dans votre dépôt local. Cependant, il n'a pas fusionné ces modifications dans votre branche actuelle (master
). Les modifications sont maintenant disponibles dans votre dépôt local, mais elles sont stockées dans une branche spéciale qui suit le dépôt distant, généralement nommée origin/master
.
Voici une différence clé entre git fetch
et git pull
. git pull
est essentiellement git fetch
suivi d'une fusion. En utilisant d'abord git fetch
, vous pouvez voir quelles modifications sont disponibles sur le dépôt distant avant de décider de les intégrer à votre travail. Cela vous donne plus de contrôle et vous aide à éviter les conflits inattendus.
Dans l'étape suivante, nous verrons comment comparer votre branche locale avec la branche distante récupérée pour comprendre quelles modifications ont été téléchargées.