Outils & qualité · 4 mondes · 12 étapes

Git & GitHub

Versionner, brancher, réparer et collaborer, commande par commande.

Progression

0 %

0/12 étapes terminées

Intermédiaire · 8 min de lecture

Réparer avec Git

Chaque erreur a sa commande

1Définition

Avant un commit : git restore (annuler une modification) et git restore --staged (retirer de la préparation). Après un commit local : git commit --amend (corriger le dernier). Après un commit publié : git revert (un nouveau commit qui défait l'ancien), jamais de réécriture.

2Principes fondamentaux

01

Local : on peut réécrire

amend, reset, tant que personne n'a le commit.

02

Publié : on ajoute

revert crée un commit inverse, l'historique reste vrai.

03

Un secret commité est compromis

On le change, même après l'avoir retiré.

04

Lire git status

Il indique les commandes pour défaire.

3Exemples pratiques

Défaire le dernier commit local, en gardant les fichiers

Exemple
1git reset --soft HEAD~1   # le commit disparaît, les modifications restent préparées

Pratique pour refaire un commit autrement, tant qu'il n'est pas poussé.

Retrouver un commit « perdu »

Exemple
1git reflog   # tout ce que HEAD a pointé récemment

Même après un reset, les commits restent récupérables pendant un moment.

4Erreurs courantes

Corriger un commit publié

À éviter

git commit --amend puis git push --force

À faire

git revert

Pourquoi : Les autres ont l'ancien commit : les historiques divergent.

Croire qu'un secret supprimé est sauvé

À éviter

git rm .env && git commit

À faire

Révoquer le secret, puis le retirer

Pourquoi : Il reste dans l'historique et sur GitHub.

reset --hard par réflexe

À éviter

git reset --hard

À faire

git status d'abord, puis la commande ciblée

Pourquoi : Les modifications non commitées sont perdues pour de bon.

5Subtilités à connaître

  • ◆git restore agit sur la copie de travail ; --staged sur la préparation ; les deux combinés remettent un fichier comme au dernier commit.
  • ◆Annuler une fusion avec revert demande de préciser le parent à garder (-m 1).
  • ◆Des outils comme git-filter-repo réécrivent tout l'historique pour en retirer un fichier : une opération lourde, coordonnée avec toute l'équipe.

6Vérifie ta compréhension

Question 1/3

Score 0

Retirer un fichier de la préparation :

Envie d'essayer ? Ouvre le Labo et recopie les exemples pour les modifier.