Question

J'ai fait quelque chose de très stupide.J'ai fait un commit en utilisant git commit (modifications de fichiers + nouveaux fichiers) (C).Ensuite, j'ai modifié le dernier commit.Ensuite, j'ai supprimé tous les fichiers de manière récursive (!) en utilisant git rm -rEnsuite, j'ai fait un autre git commit (C).

A-B-C
    ↑
  master

Existe-t-il un moyen de restaurer les fichiers tout en conservant les modifications apportées lors de mon premier commit ?(C) Je préfère ne pas revenir à (b).J'ai essayé git reset --soft head^, alors le git status répertorie les fichiers que j'ai supprimés, puis j'ai fait git checkout, mais toujours pas de chance.Je ne sais même pas si c'est possible.

Était-ce utile?

La solution

Faites-vous une faveur et ne le faites pas git checkout <hash> comme le suggère l’autre réponse et aborder davantage de problèmes.

SI vous avez supprimé le fichier de votre répertoire de travail et que vous n'avez pas encore validé les modifications, procédez :

git checkout -f

PRUDENCE:validez les fichiers non validés avant d'exécuter cette commande, sinon vous allez tous les perdre

Les fichiers supprimés devraient être de retour.

Sinon et si vous pouvez trouver le commit que vous souhaitez (C, etc.- votre question n'est pas claire) de git reflog, fais juste git reset --hard <hash from reflog> et vous devriez être prêt.

Autres conseils

Si je vous ai bien compris, vous avez réécrit le commit C.Ainsi, le commit d'origine, appelons-le C1, n'est pas accessible depuis votre graphe de commit, mais il est toujours là (git conserve tous les commits pendant un certain temps).Utiliser git reflog pour obtenir le hachage de validation et git checkout <hash> ou une autre commande appropriée pour accéder à l'ancien état C1.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top