Aller au contenu
English
Compte : non connecté, synchronisation possible Mon apprentissage
Selectionner le thème
English

Opérations Git : résoudre les problèmes du quotidien

  • 10 min

Par mis à jour le

Améliorer cette page

Vous avez un problème avec Git et vous cherchez la solution rapidement ? Cette section regroupe 7 guides opérationnels, organisés par symptôme. Pas de théorie inutile : chaque guide part d'un message d'erreur ou d'une situation concrète et donne la solution étape par étape.

La bonne nouvelle : Git ne supprime presque rien. Les commits, branches et stashs que vous croyez perdus restent accessibles via git reflog, généralement 90 jours, mais les entrées devenues injoignables après un commit --amend ou un rebase expirent souvent au bout de 30 jours (gc.reflogExpireUnreachable). Avant toute opération de récupération, trois commandes permettent de cerner la situation :

  • git status, état actuel du dépôt (modifié, stagé, en conflit)
  • git log --oneline -10, les 10 derniers commits de la branche
  • git reflog, tout ce que Git a enregistré ces dernières heures
SymptômeGuide
« Mon message de commit est faux » / « J'ai oublié un fichier »Annuler et corriger des commits
« J'ai commité sur main au lieu de ma branche »Commit sur la mauvaise branche
« Git me dit CONFLICT »Résoudre les conflits de merge
« ! [rejected] quand je push »Débloquer un push rejeté
« Le fichier est dans .gitignore mais Git le suit toujours »Nettoyer l'historique et les fichiers
« J'ai supprimé une branche par erreur » / « J'ai perdu des commits »Récupérer des données perdues
« Quelque chose ne marche plus, je ne sais pas depuis quand »Diagnostiquer des problèmes

Chaque guide donne la commande qui règle le cas. Pour un commit à corriger, Annuler et corriger des commits choisit entre amend, revert et reset, et Commit sur la mauvaise branche déplace votre travail sans le perdre. Pour un conflit, le guide Résoudre les conflits de merge traite les marqueurs, --ours et --theirs, rerere et --abort. Pour un push rejeté, Débloquer un push rejeté s'appuie sur pull --rebase et --force-with-lease.

Les trois derniers guides font le ménage et l'enquête. Nettoyer l'historique et les fichiers emploie git rm --cached, filter-repo et .gitignore. Récupérer des données perdues retrouve vos commits et branches avec le reflog, fsck et ORIG_HEAD. Enfin Diagnostiquer des problèmes localise le commit fautif avec bisect, blame et log -S.

La majorité des erreurs Git tombent dans trois catégories :

Vous avez modifié des données non partagées (commits locaux, branches non pushées). reset, amend et rebase sont vos alliés : ils réécrivent une histoire que personne d'autre n'a vue, et les commits qu'ils écartent restent retrouvables par le reflog. La réserve porte sur le travail non commité, que Git n'a jamais enregistré et que le reflog ne peut donc pas rendre : reset --hard l'efface pour de bon. Commitez ou remisez d'abord, et ces trois commandes deviennent réellement sans danger.

Vous avez modifié des données déjà partagées (commits pushés sur origin). La récupération passe par revert (crée un commit inverse, sans réécriture) ou par push --force-with-lease si toute l'équipe est prévenue. Ne jamais reset --hard sur une branche partagée sans coordination.

Vous avez cru supprimer quelque chose (branche effacée, reset --hard, stash perdu). Tout est dans le reflog, consultez-le avant de paniquer.

  • Ne paniquez jamais : Git ne jette presque rien, le reflog conserve généralement 90 jours d'historique (30 jours pour les entrées devenues injoignables après amend ou rebase)
  • git pull --rebase résout 90% des push rejetés
  • git commit --amend corrige le dernier commit (message ou fichier oublié)
  • git revert annule un commit pushé en créant un commit inverse
  • git reflog est votre machine à remonter le temps, premier réflexe quand quelque chose disparaît
  • Créez une branche de sauvegarde avant toute opération risquée : git branch backup-avant-manip ne coûte rien
  • Ces guides renvoient vers les cours (Modules 1-6) pour la théorie détaillée

Ce projet vous est utile ?

Les guides, formations, quiz et labs restent gratuits. Si vous les utilisez régulièrement, vous pouvez contribuer à leur maintenance et à leur développement.

Devenir membre de soutien (nouvel onglet) Soutenir une fois (nouvel onglet) En savoir plus

Suivez aussi le projet sur LinkedIn