À moins d'avoir piraté les données du répertoire .git
, il est peu probable que vous ayez perdu quoi que ce soit. Vous pouvez avoir un désordre terrible à nettoyer, et cela peut prendre beaucoup de travail sur ce que vous avez fait et où c'est, mais vous n'avez probablement rien perdu.
Voilà les bonnes nouvelles. La mauvaise nouvelle est qu'il sera diaboliquement difficile pour quiconque de vous aider beaucoup.
Il est probable que vous ayez besoin d'identifier toutes les branches et de remonter en arrière les validations sur chacune d'entre elles. Vous devrez décider si toutes ces opérations 'git commit -a
' étaient une bonne idée. Cela semble improbable - vous devrez donc peut-être effectuer vos fusions correctement, en travaillant depuis l'avant-dernier commit sur chaque branche.
Vous devez également décider ce que vous essayez vraiment de faire.
Il semble que vous vouliez fusionner un certain nombre de branches - appelez-les BranchA, BranchB et BranchC - sur la branche principale, maître. Mais ce n'est pas clair c'est ce que vous avez essayé. Etant donné que les choses sont un peu en désordre, je recommande de créer une autre branche que nous pouvons appeler 'Fixup'. Créez ceci à partir de la tête de la branche principale.Ensuite, fusionnez la version appropriée de BranchA, BranchB et BranchC dans la branche Fixup. À chaque étape, vérifiez que le code fonctionne correctement - en transmettant sa suite de tests, etc. Vérifiez chaque fusion séparément sur la branche Fixup.
Lorsque vous êtes satisfait que la branche Fixup est correcte, revenez à la branche principale et fusionnez la branche Fixup à la version maître.
Charles Bailey fait la suggestion très raisonnable (dans un commentaire à la question): avant de faire quoi que ce soit d'autre, faire une copie de sauvegarde de ce que vous avez, exactement comme il est actuellement. Ensuite, continuez avec les opérations de nettoyage. Et sa suggestion d'obtenir de l'aide interactive est également judicieuse.
revenir à une ancienne sauvegarde fonctionne toujours pour moi –
Tout d'abord, faire une sauvegarde complète de votre arbre de travail et le dossier '.git' maintenant et le mettre dans un endroit sûr, en lecture seule de préférence. D'après ce que vous avez dit, il semble très improbable que vous ayez perdu votre travail (pas de 'reset --hard', et on dirait que vous étiez en train de jouer avec des choses commises sur des branches). Une fois que vous avez fait cela aller et trouver un expert git sur une chaîne interactive quelque part qui peut vous parler de la façon de rechercher et de restaurer votre état précédent. stackoverflow n'est presque certainement pas le forum pour cela, car vous avez besoin d'aide interactive, pas seulement un Q & A. –
Merci à tous, je vais utiliser toutes les suggestions et comprendre quelque chose, je ne peux pas vraiment choisir une réponse pour le moment. –