Récupérer une branche Git supprimée
Ces blocs sont des cas différents, pas un script unique. Choisissez celui de votre dépôt. Remplacez branches, chemins et VERIFIED_COMMIT avant usage. Les commandes d’annulation concernent seulement leur opération active ; n’exécutez pas les deux alternatives.
Réponse courte
Supprimer une branche retire sa référence, pas nécessairement ses commits. Retrouvez le dernier commit conservé et créez une branche qui le nomme.
Exemple et conditions
Il faut le bon commit et ses objets disponibles. Le message de suppression peut indiquer son SHA ; conservez-le et vérifiez-le avant d’agir.
Examiner avant de modifier
Lisez le reflog de HEAD et l’historique candidat. Le reflog de la branche disparaît avec elle, mais celui de HEAD peut conserver des mouvements utiles.
git reflog --date=iso
git show VERIFIED_COMMIT
git log -5 --oneline VERIFIED_COMMITGarder une référence ou un checkout séparé
Utilisez git branch rescue/deleted-branch VERIFIED_COMMIT pour nommer le commit sans changer de branche. Inutile d’écraser le répertoire de travail.
git branch rescue/deleted-branch VERIFIED_COMMITPremier parcours
Avec git show et git log, vérifiez la pointe et l’historique attendus. Recréez ensuite le nom d’origine s’il est libre.
Choisir l’autre résultat consciemment
Si une branche distante existait, confirmez que sa référence existe encore avant de récupérer et recréer la branche locale. Un ancien push ne garantit pas sa conservation.
Limites et exceptions
Un nouveau clone ne contient pas votre reflog local. Expiration et élagage des objets sont des politiques distinctes ; évitez un nettoyage agressif pendant la récupération.
git ls-remote --heads origin my-branchConflits et nettoyage
Sans référence, git fsck --full --no-reflogs --unreachable peut trouver des commits conservés. Examinez les candidats : la commande ne connaît pas la branche recherchée.
git fsck --full --no-reflogs --unreachableVérifier le résultat
Vérifiez l’historique et l’état de la branche recréée. Récupérer des commits ne restaure pas des modifications de fichiers jamais commitées.
git log -5 --oneline rescue/deleted-branch
git status --shortQuestions fréquentes
Le nom perdu n’est pas une sauvegarde. Si l’objet manque, cherchez une autre copie, un collaborateur ou une référence distante réellement disponible.
Examiner l’opération dans FluxGit
FluxGit peut protéger la suppression dans l’app. Ref journal activé enregistre les références lorsque son hook installé s’exécute ; contournements et autres implémentations de Git ne sont pas couverts.
Références officielles Git
Récupérer une branche Git supprimée avec reflog
Récupérez une branche locale récemment supprimée en retrouvant son commit conservé et en créant une nouvelle branche. Découvrez reflog et la Safety Timeline de FluxGit dans un dépôt de test, puis les cas où le hook installé du Ref journal peut enregistrer les changements de références via la ligne de commande Git.
Regarder sur YouTube — ouvre un nouvel onglet
Enregistré dans un dépôt de test. Narration en anglais et sous-titres en français. La récupération exige des objets de commit conservés et des entrées disponibles dans le reflog ou le journal ; le Ref journal ne sauvegarde pas les fichiers non commités.
Lire la transcription de la narration
- Vous avez supprimé une branche contenant du travail : git branch -D, deux commits qui n’ont jamais été fusionnés ailleurs. Voici comment les récupérer.
- Dans FluxGit, la branche a disparu de la liste.
- Voici pourquoi le travail n’est pas perdu. Une branche est une étiquette. git branch -D enlève l’étiquette, mais les deux commits restent dans le dépôt, sans branche pointant sur eux. Le reflog s’en souvient encore. Créez une branche sur le dernier commit, et les deux sont de retour.
- Ouvrez la Safety Timeline. Elle présente le reflog en phrases simples.
- Find a lost commit : saisissez une partie du message. Un résultat : le dernier commit de la branche supprimée.
- Create branch here. Une branche de récupération pointe sur ce commit, et rien d’autre ne bouge.
- Les deux commits sont de retour dans le graphe.
- Activez le Ref journal pour ce dépôt.
- Lorsque le hook Git installé s’exécute, FluxGit peut enregistrer les suppressions de branches effectuées via la ligne de commande Git, y compris les commandes de terminal ou d’agents.
- Les contournements du hook et les autres implémentations de Git ne sont pas couverts.
- Il enregistre les références, pas les fichiers non commités.
- La récupération nécessite toujours que les objets de commit existent.
- Dans le terminal : git reflog, retrouvez le commit, puis exécutez git branch avec l’ancien nom et ce commit.
- Récapitulatif. Une branche supprimée est une étiquette perdue ; le reflog retrouve encore les commits. Prochaine leçon : quand un agent IA supprime votre code.