J'ai perdu ma dernière commission parce que j'ai accidentellement couru "git reset --hard tête ^". Remarque: je ne voulais pas mettre le "^" à la fin. P>
Y a-t-il un moyen de le récupérer? C'était 2 jours de travail: ( p>
3 Réponses :
Si vous connaissez l'ID de validation (par exemple, faites défiler par exemple sur votre terminal ou utilisez > où 61567DE5D9 sont les premiers chiffres du dernier ( perdu) commit. p> p> git reflog code>),
Je pense que Cet article est ce que vous recherchez. Selon l'article, votre commit est "parti" mais pas les ordures recueillies - une sorte de corbeille de recyclage dans Windows. P>
vous exécutez git fsck -lost-trouvé-trouvé code> pour trouver "Dangling COMMIT" et le regarder avec
git reflog code>, puis fusionner la validation pendante avec votre actuel Branche,
git fusion 7c61179 code>. p>
Merci. Ça l'a fait. Je savais que c'était juste flottant là-bas quelque part, non mélangé de la branche.
En combinaison avec DiffutoTool, j'ai résolu mon problème de "Bust Lost": Git FSCK - TRUCT-TRONS-CONTRÔLÉ (DANNGLING COMMIT LES HASHES SONT AFFÉRÉS) GIT DIFFTOOL ONES_HASH ONFLYFEDER / (J'ai essayé tous les engagements dangereux, jusqu'à ce que j'ai trouvé le nécessaire))
Git rend vraiment facile de revenir à un état antérieur et qui fonctionne très fort pour vous empêcher de perdre toutes les données que vous avez commises. C'est cette raison que vous devriez vous engager souvent. J'ai une commande sinon strud>, parcourez la sortie code> reflog code> pour trouver la chose avant l'action que vous ressentez dans un mauvais état et réinitialisez-la. P> git corbeille code> qui fait que
git reset --hard code> état, mais après avoir écrit un commit afin que je puisse annuler la réinitialisation matérielle si j'ai besoin. < / p>
git reset --hardig_head code> pour annuler ce que vous venez de faire. P>
git reset --hard '@ {5 minutes il y a}' code> Pour vous mettre dans un état précédent en fonction de l'heure ( Il y a beaucoup d'options que vous pouvez utiliser, par exemple,
git reset --hard '@ {hier}' code> pour prétendre aujourd'hui jamais arrivé). P>
Plus général, vous pouvez utiliser @ {1} code> ou
tête @ {1} code> au lieu de
orig_head code>.
Dans tous les cas, n'utilisez pas Git GC GC. Cela supprimera les commits non liés de manière permanente.
Non, gc sera pas i> perdre ce commit à moins que vous ne soyez pas sorti de votre façon de faciliter la possibilité d'oublier vos engagements (désactivation ou taille de manière agressive). Toute personne qui a passé suffisamment de temps pour apprendre à configurer Git pour perdre son plus récent commettre aurait au moins savoir ne pas poser la question.
Git GC CODE> Par défaut Ne supprimez pas les engagements non liés si elles sont dans le reflogue jusqu'à 30 jours dans le cas de commits non référencés (par défaut).