Mémo Git · Synchroniser

Intégrer les nouveautés du remote

git pull · git pull --rebase

git pull récupère les commits du remote et les intègre à ta branche. S'il n'y a que des nouveautés distantes, la branche avance simplement. Si tu as aussi des commits locaux, Git fait un merge, ou un rebase avec git pull --rebase.

Ce que ça fait

Récupère les commits distants et les intègre à la branche courante, par merge ou par rebase.

Un cas d'usage

Un collègue a poussé sur la même branche que toi : tu te mets à jour avant de continuer.

En ligne de commande

git pull
Fetch puis intégration, selon ta configuration.
git pull --rebase
Rejoue tes commits locaux par-dessus ceux du remote : historique linéaire.
git pull --ff-only
N'accepte que l'avance rapide, et s'arrête si les branches ont divergé.
git config --global pull.rebase true
Fait de --rebase le comportement par défaut.

Dans Merathon

  1. Bouton « Pull » : avance rapide si possible, sinon merge.
  2. La petite flèche à côté (« Options Pull ») propose « Pull (rebase) », qui rejoue tes commits par-dessus ceux du remote et garde un historique linéaire.
  3. Clic droit sur une autre branche locale → « Pull » la met à jour sans y basculer.

Questions fréquentes

Que veut dire « You have divergent branches » ?

Le remote et toi avez chacun des commits que l'autre n'a pas. Choisis une stratégie : git pull --rebase ou git pull --no-rebase (merge).

Comment annuler un git pull ?

Juste après, git reset --hard ORIG_HEAD remet la branche où elle était. Attention, les modifications non commitées sont perdues.

Voir aussi