Séquence 07 · Local ↔︎ distant
Pourquoi Franck ne voit rien
La scène se joue tous les jours dans tous les services qui débutent avec Git. Jouons-la ensemble — puis ne la revivons plus jamais.
La scène
Marie termine une belle amélioration de l’indicateur. Consciencieuse, elle enregistre :
Marie · 14 h 32
git commit -m "Ajoute la ventilation par sexe"« Voilà, c’est enregistré. Franck peut regarder. »
Franck · 14 h 33
Ouvre le projet sur GitLab. Actualise. Actualise encore.
« Euh… je ne vois rien de nouveau. Tu es sûre d’avoir enregistré ? »
Marie a pourtant tout bien fait. Alors, pourquoi Franck ne voit-il rien ? Faites-le vous-même, la réponse est dans la manipulation :
Commit ≠ push. git commit colle la photo dans votre album, sur votre poste — et s’arrête là. Tant que vous n’avez pas fait git push, personne d’autre ne peut la voir. Enregistrer, c’est pour vous ; pousser, c’est pour les autres.
Les trois commandes du voyage
La carte complète, désormais. Trois commandes font circuler les commits entre votre poste et GitLab :
push ↑ · fetch / pull ↓git commit range les photos.
git push — envoyer. Vos nouveaux commits partent vers GitLab. C’est le geste de partage : après un push, l’équipe voit votre travail.
git pushÉnumération des objets: 5, fait.
Écriture des objets: 100% (3/3), 412 octets.
Vers gitlab.exemple.fr:etudes/etude-population.git
51bd882..c47d1e9 main -> main
git fetch — se renseigner. Git demande à GitLab « quoi de neuf ? » et télécharge les nouveaux commits des collègues sans toucher à vos fichiers. Vous pouvez regarder ce qui arrive avant de l’intégrer. C’est la commande prudente, celle qui ne change jamais rien à votre travail en cours.
git pull — récupérer. fetch + intégration : les nouveaux commits de l’équipe sont téléchargés et appliqués à votre copie. C’est le geste du matin : on démarre sa journée en se mettant au niveau du dépôt commun.
git pullMise à jour 51bd882..e02ab55
traitement.py | 14 ++++++++------
rapport.qmd | 3 ++-
2 fichiers modifiés, 11 insertions(+), 7 suppressions(-)
Lecture : pendant votre absence, l’équipe a modifié traitement.py et rapport.qmd ; votre copie locale vient de rattraper le dépôt commun.
Le rythme d’une journée
La routine qui deviendra automatique — remarquez la symétrie : on tire le matin, on pousse le soir :
- Le matin —
git pull: je récupère ce que l’équipe a poussé depuis hier. - Dans la journée — je travaille normalement : modifications,
git status,git diff,git add,git commit… autant de fois que nécessaire, tout est local et rapide. - Avant de partir (ou dès qu’un travail est bon à partager) —
git push: mes commits du jour rejoignent le dépôt commun.
La synchronisation demande un dépôt distant — si votre formateur en a préparé un, c’est le moment : faites un commit dans le projet partagé, constatez sur GitLab (dans le navigateur) qu’il n’apparaît pas, puis git push et actualisez : il est là, avec votre nom et votre message. Sinon, gardez cette manipulation pour la mission finale.
Si git push est refusé avec un message du type « le distant contient du travail que vous n’avez pas en local », c’est qu’un collègue a poussé avant vous. Rien de grave, c’est même le fonctionnement normal : faites git pull pour récupérer son travail, vérifiez que tout va bien, puis repoussez. Règle d’or : on tire avant de pousser.
Il est 9 h, vous reprenez l'étude commune après trois jours de congés. Première commande ?
Travailler trois jours en retard sur l'équipe, c'est préparer des conflits. Le réflexe du matin : git pull. (Et git commit sans rien avoir modifié n'aurait de toute façon rien à photographier.)
Pour aller plus loin — que fait exactement git fetch de plus prudent que pull ?
git fetch range les commits téléchargés dans une copie miroir du distant (visible sous le nom origin/main) sans toucher ni à vos fichiers ni à votre main. Vous pouvez alors comparer tranquillement : git log main..origin/main --oneline liste ce que l’équipe a fait et que vous n’avez pas encore intégré. Quand vous êtes prêt, git pull fait l’intégration. Avec l’habitude, beaucoup gardent pull au quotidien et sortent fetch quand ils veulent inspecter avant d’intégrer — par exemple au retour de congés.