Comment récupérer une réserve Git supprimée, une branche supprimée ou des commits perdus
Une réserve supprimée ou une branche supprimée est rarement définitivement perdue : Git conserve les validations jusqu'à ce que le garbage collection les supprime. Trouvez-les avec le reflog ou git fsck, vérifiez ce qu'ils contiennent et remettez-les sur une branche avant qu'il ne soit trop tard.
Écrit par Kodmora
L'éditeur de logiciels derrière GitTree
- Cachette
- Annuler et récupérer
Sur cette page
Lorsque vous supprimez une réserve ou supprimez une branche, Git supprime le nom, pas les validations. Les validations restent dans le référentiel en tant qu'objets inaccessibles jusqu'à ce que le garbage collection les élague, généralement après deux semaines ou plus. Recherchez le dernier commit d'une branche supprimée dans le reflog avec git reflog, trouvez une réserve supprimée avec git fsck --unreachable, vérifiez-la avec git show, puis conservez-la avec git branch rescue <sha>.
Ce guide couvre chaque cas avec les commandes exactes, explique combien de temps Git conserve le travail perdu et ce qui ne peut pas être récupéré, et montre la même récupération dans Lost & Found de GitTree, qui recherche chaque source en même temps et ne vérifie ou ne réinitialise jamais quoi que ce soit. Lost & Found fait partie du forfait gratuit de GitTree. Pour annuler une réinitialisation, un rebase ou une modification, lisez plutôt comment annuler git reset, rebase and commit.
Où vit réellement le travail Git « perdu »
Un commit est accessible lorsqu'une branche, une balise, le stash ou HEAD y mène. La suppression d'une branche ou la suppression d'une réserve rend ses validations inaccessibles, mais elles restent dans .git/objects. Deux enregistrements vous aident à les trouver : le reflog, où chaque branche et HEAD pointaient auparavant, et la base de données d'objets elle-même, que git fsck peut rechercher.
| Ce que tu as perdu | Où chercher | Commande |
|---|---|---|
| Une branche supprimée que vous aviez extraite | Le reflog de HEAD | git reflog |
| Une branche supprimée que vous n'avez jamais extraite | Commis inaccessibles | git fsck --unreachable |
| Une réserve supprimée ou effacée | Validations en forme de fusion inaccessibles | git fsck --unreachable | grep commit |
| Commits perdus après une réinitialisation ou un rebase | Le reflog de la branche | git reflog show <branch> |
| Modifications jamais validées ou cachées | Nulle part dans Git | Non récupérable depuis Git |
Récupérer une branche supprimée
Git imprime le dernier commit de la branche lorsque vous la supprimez (Deleted branch feature/login (was 3f2a9c1)). Si ce message a disparu, recherchez dans le reflog de HEAD la dernière fois que vous étiez sur la branche, puis recréez la branche à ce commit.
# find the last commit of the branch
git reflog | grep "feature/login"
# check what it holds
git show 3f2a9c1 --stat
# put the branch back
git branch feature/login 3f2a9c1Récupérer une cachette abandonnée
Une cachette n'a pas de reflog propre une fois qu'elle est supprimée, alors recherchez les commits inaccessibles. Une cachette est un commit en forme de fusion dont le message commence par WIP on ou On <branch>:, ce qui facilite le filtrage. C’est la méthode décrite dans la propre documentation de Git.
# list unreachable stash-like commits, newest first
git fsck --unreachable | grep commit | cut -d" " -f3 \
| xargs git log --merges --no-walk --grep=WIP --format="%h %cr %s"
# inspect a candidate
git stash show -p 7c1e0b4
# restore it into your working tree, or keep it on a branch
git stash apply 7c1e0b4
git branch rescue-stash 7c1e0b4Trouvez tous les commits en suspens avec git fsck --lost-found
git fsck --lost-found répertorie les commits en suspens et écrit une copie de chacun dans .git/lost-found/commit/, nommé par son identifiant. Utilisez-le lorsque vous ne savez pas ce que vous recherchez : listez-les avec leurs dates et messages, puis partez de celui que vous souhaitez.
git fsck --lost-found
ls .git/lost-found/commit | xargs git log --no-walk --format="%h %cr %s"
git branch rescue 9d44b0eRécupérez le travail perdu avec l'outil Objets trouvés de GitTree
Ouvrir les objets perdus et trouvés
Choisissez Outils → Objets perdus ou appuyez sur
Alt+Shift+D. Il s'ouvre comme une fenêtre complète sur sa page Démarrer, qui explique les trois sources qu'il recherche : le reflog, les références de récupération de GitTree et les objets inaccessibles.Trouver du travail local
Cochez Inclure une analyse plus approfondie des objets inaccessibles pour rechercher également les cachettes supprimées, puis appuyez sur Rechercher du travail local. Travail trouvé répertorie chaque résultat avec sa source et la date à laquelle il a été vu ; Filtrer par commit, message ou source réduit la liste.
Inspectez avant de conserver
Sélectionnez un résultat : Pourquoi cet objet apparaît affiche ses preuves, son message et ses fichiers apparaissent à côté, et chaque fichier ouvre son contenu. Rien n'est extrait ou appliqué.
Gardez-le sur une branche
Sous Conserver ce commit, saisissez un Nouveau nom de branche et appuyez sur Créer une branche de récupération. Récupéré répertorie la branche ; Afficher dans le graphique y accède. Vos fichiers de checkout et de travail ne changent pas.

Combien de temps Git conserve les commits perdus
| Paramètre | Par défaut | Ce qu'il contrôle |
|---|---|---|
gc.reflogExpire | 90 jours | Les entrées de relog pour les commits sont toujours accessibles |
gc.reflogExpireUnreachable | 30 jours | Les entrées de relog pour les commits ne sont plus accessibles |
gc.pruneExpire | 2 semaines | Objets inaccessibles sans entrée de reflog, comme une réserve déposée |
Le garbage collection s'exécute tout seul après certaines commandes, ce sont donc des fenêtres, pas des promesses. Plus tôt vous chercherez, plus vous en trouverez. Une copie ailleurs, comme le clone d'un coéquipier ou une branche poussée, est l'autre filet de sécurité : le travail perdu uniquement sur votre ordinateur n'existe que là-bas.
Ce qui ne peut être récupéré
- Modifications qui n'ont jamais été validées ou cachées, telles que les modifications rejetées avec
git checkout -- <file>ougit restore. - Fichiers non suivis qui n'étaient pas dans une cache créée avec
-u. - Confirme que le garbage collection a déjà été élagué.
- Un travail qui n’existait que sur l’ordinateur d’une autre personne.
Étapes suivantes : le guide Lost & Found documente chaque page et chaque bouton, trouver les conseils de branche précédents couvre la vue reflog, et le guide git stash explique l'application, l'affichage et les fichiers non suivis afin que vous ayez besoin d'une récupération moins souvent.
Questions fréquemment posées
Puis-je récupérer une réserve git abandonnée ?
Habituellement, oui. Une réserve supprimée devient une validation inaccessible jusqu'à ce que le garbage collection l'élague. Trouvez-le avec git fsck --unreachable, inspectez-le avec git stash show -p <sha>, puis git stash apply <sha> ou git branch <name> <sha>.
Comment récupérer une branche supprimée dans Git ?
Recherchez le dernier commit de la branche dans git reflog (ou le message « was <sha> » que Git a imprimé lorsque vous l'avez supprimé), puis exécutez git branch <name> <sha> pour remettre la branche.
Qu’est-ce qu’un commit en suspens ?
Un commit vers lequel aucune entrée de branche, de balise, de cache ou de reflog ne pointe. git fsck --lost-found les répertorie et les copie dans .git/lost-found/commit/ afin que vous puissiez les inspecter.
Est-ce que git gc supprime les commits perdus ?
Oui, une fois qu'ils sont plus anciens que les paramètres d'expiration : par défaut, les objets inaccessibles sans entrée de reflog sont élagués après deux semaines. Évitez git gc et git prune jusqu'à ce que vous ayez récupéré votre travail.
Puis-je récupérer les modifications que je n’ai jamais validées ?
Pas depuis Git. Seul le travail validé ou caché se trouve dans la base de données d'objets. L’historique local de votre éditeur ou une sauvegarde est l’endroit où chercher.
Le programme Objets trouvés de GitTree est-il gratuit ?
Oui. Lost & Found fait partie du forfait gratuit de GitTree. Il lit uniquement votre référentiel local et le seul changement qu'il apporte est la branche de récupération que vous demandez.
Sources
Les allégations concernant d'autres produits ont été vérifiées par rapport à leurs pages officielles sur 5 novembre 2026. Les prix et les fonctionnalités changent ; les pages des fournisseurs sont la source de vérité.