Aller au contenu
English
English
Développement medium

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

10 min de lecture

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

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 site vous est utile ?

Sachez que moins de 1% des lecteurs soutiennent ce site.

Je maintiens ce site gratuitement, sans publicité, sans profilage et sans compte à créer. Un soutien, même symbolique, m'aide à couvrir l'hébergement et à garder ces ressources gratuites. Merci pour votre appui.

Le formulaire ne s'affiche pas ? Ouvrir Ko-fi dans un onglet.

Abonnez-vous et suivez mon actualité DevSecOps sur LinkedIn