Récupérer les changements distants
Objectif : Intégrer dans le dépôt local les commits reçus depuis la forge.
Un dépôt distant peut évoluer après votre dernière publication : un collègue ou une modification faite sur la forge peut ajouter un commit que votre copie locale ne possède pas. Vous devez récupérer ce travail avant de poursuivre, sans écraser vos changements locaux.
À la leçon précédente, vous avez publié les commits de `main` vers `origin/main` et conservé une note provisoire non commitée dans `README.md`. Vous allez maintenant faire ajouter un changement distinct sur la forge, puis le récupérer dans votre dépôt local.
Préparer un changement sur la forge
Dans l’interface de votre forge, ouvrez le dépôt associé à `origin` et modifiez `index.html` en ajoutant une phrase à la présentation du site. Enregistrez cette modification comme un commit sur la branche `main`, avec un message à l’impératif en français, par exemple « Préciser la présentation du site ». Ne modifiez pas `README.md` : votre note locale doit rester intacte.
Cette modification crée un commit sur la branche distante, sans mettre à jour immédiatement votre dossier de travail. Votre branche locale `main` et `origin/main` ne pointent donc plus sur la même version. La commande `git pull` récupère les commits distants et tente de les intégrer à la branche locale courante.
Récupérer et intégrer les commits
Dans un terminal, placez-vous dans le dossier `suivi-site`, puis vérifiez que vous êtes sur `main`. Comme vous avez déjà associé cette branche à `origin/main`, vous pouvez lancer la récupération sans préciser davantage la destination.
cd suivi-site
git branch --show-current
git pullmain
remote: Enumerating objects: 5, done.
remote: Counting objects: 100% (5/5), done.
Unpacking objects: 100% (3/3), done.
From https://forge.example/votre-compte/suivi-site
abc1234..def5678 main -> origin/main
Updating abc1234..def5678
Fast-forward
index.html | 1 +
1 file changed, 1 insertion(+)Les identifiants et l’adresse affichés ici sont des exemples : Git affichera ceux de votre dépôt. Dans ce cas, `git pull` a intégré le commit distant par une avance simple, car aucun commit local concurrent n’a été créé depuis la dernière synchronisation. La modification de `index.html` apparaît désormais dans votre copie locale, tandis que le changement non commité de `README.md` reste présent.
Vérifier le résultat et protéger vos changements
Après une récupération, contrôlez l’état du dépôt et les derniers commits. Vous devez retrouver la modification distante dans `index.html`, ainsi que votre note dans `README.md`. La note demeure un changement local non commité : `git pull` ne l’a ni publiée ni transformée en commit.
git status
git log -3 --onelineOn branch main
Your branch is up to date with 'origin/main'.
Changes not staged for commit:
modified: README.md
[...]
def5678 Préciser la présentation du site
[...]
[...]La mention indiquant que `main` est à jour avec `origin/main` confirme que les commits accessibles sur la forge ont été intégrés. La ligne signalant `README.md` comme modifié confirme que votre note reste uniquement dans le dossier de travail. Ne la supprimez pas et ne lancez pas de commande de restauration si vous souhaitez la conserver.
Si les commits locaux et distants ont modifié les mêmes lignes, Git peut signaler un conflit de fusion au lieu d’intégrer automatiquement les changements. Ne considérez pas ce message comme une récupération terminée : il faut examiner les fichiers concernés et résoudre le conflit avant de pouvoir poursuivre. La résolution détaillée sera abordée dans un contexte pratique ultérieur.
À retenir
- `git pull` récupère les commits distants et les intègre à la branche locale courante.
- Une intégration simple est possible lorsque les historiques peuvent être réunis sans conflit.
- Contrôlez l’état avec `git status` et les derniers commits avec `git log`.
- Une modification locale non commitée reste locale si elle n’est pas écrasée par les changements récupérés ; protégez-la avant toute opération risquée.
Dans les prochaines leçons, vous préparerez les fichiers du site et organiserez un historique cohérent avant de vérifier la publication sur la forge.