Par Anonyme (non vérifié) , 29 avril 2026

Ce que vous accomplirez

Vous prendrez une branche feature qui est en retard sur main, lui ferez rebase proprement sur le nouveau tip, résoudrez les conflits, et pousserez la branche rebasée.

Pourquoi rebase, pas merge ?

Merger main dans votre branche feature produit des merge commits supplémentaires.

Étape 1 : configurer un sandbox

mkdir rebase-tutorial && cd rebase-tutorial
git init
echo "v1" > app.txt
git add app.txt && git commit -m "Initial"

git checkout -b feature/login
echo "login" > login.txt
git add login.txt && git commit -m "Add login"

git checkout main
echo "v2" > app.txt
git commit -am "Update app to v2"

Étape 2 : rebase

git checkout feature/login
git rebase main

Étape 3 : gérer les conflits

git status
git add app.txt
git rebase --continue
git rebase --abort

Étape 4 : vérifier

git log --oneline --graph

Étape 5 : push

git push --force-with-lease

Variantes courantes

git fetch origin
git rebase origin/main

git config --global pull.rebase true

git checkout main && git pull
git checkout feature/login && git rebase main

Rebase interactif

git rebase -i main

Pièges et règles

  • Ne rebase jamais des branches partagées.
  • Utilisez --force-with-lease, pas --force.
  • Résolvez les conflits dans l'ordre où ils surgissent.
  • Si les conflits sont écrasants, abandonnez et reconsidérez.

Récupération

git reflog
git reset --hard ORIG_HEAD