Nouvelles Chroniques d'Amethyste

Penser au Sens, pas au Verbe

La différence entre pull et fetch dans Git

Poster un commentaire

Si Git est un bon outil, la courbe d’apprentissage est plutôt rude. Une des fonctions les moins bien comprises (enfin une….) c’est la différence entre pull et fetch.

C’est tout l’objet de cet article.

Je crois que le plus simple est de faire une démonstration. je charge dans VS un projet trouvé dans un repository Git comme Github:

2016-10-24_23-05-42

On va s’intéresser à l’insupportable ligne blanche montrée par la flèche. Allons sur Github pour la supprimer:

2016-10-24_23-08-22

Je clique sur le bouton d’édition:

2016-10-24_23-09-40

Je supprime la vilaine petite ligne puis clique sur Preview Changes:

2016-10-24_23-11-25

On remplit le formulaire et on fait un commit.

 

Retour dans Visual Studio. Pour l’instant il n’y a rien de spécial à voir. Allons dans Team Explorer:

2016-10-24_23-13-29

Puis Sync:

2016-10-24_23-15-11

La commande qui nous intéresse est Fetch. Cliquez dessus, au bout de quelques secondes notre commit apparaît:

2016-10-24_23-16-44

Première remarque on peut cliquer autant de fois que l’on souhaite sur Fetch. L’affichage ne change pas, c’est une opération idempotente, en tout cas tant qu’il n’y a pas de nouveaux commit.

 

Le plus intéressant est que le code non plus n’a pas changé.

Fetch est donc une commande qui annonce la liste des commits disponibles pour être fusionnés (merge) dans le repository courant.

Pour lancer cette fusion on peut lancer un pull:

2016-10-24_23-20-12

Pull combine à la fois fetch et merge.

Comment les choses se passent en cas de conflit?

 

Côté Github je commite une modification sur un commentaire:

2016-10-24_23-38-28

Côté VS je commite localement une autre modification sur le même commentaire.

Bien entendu Fetch ne pose pas de problèmes particuliers, intéressons nous à Pull:

2016-10-24_23-42-24

Visual Studio annonce correctement qu’il y a un conflit et qu’une décision de fusion doit être prise de façon manuelle.

Bibliographie

 

Publicités

Laisser un commentaire

Entrez vos coordonnées ci-dessous ou cliquez sur une icône pour vous connecter:

Logo WordPress.com

Vous commentez à l'aide de votre compte WordPress.com. Déconnexion / Changer )

Image Twitter

Vous commentez à l'aide de votre compte Twitter. Déconnexion / Changer )

Photo Facebook

Vous commentez à l'aide de votre compte Facebook. Déconnexion / Changer )

Photo Google+

Vous commentez à l'aide de votre compte Google+. Déconnexion / Changer )

Connexion à %s