2011-11-17 2 views
2

Pour réinitialiser mon dernier commit, je l'ai fait:Comment "annuler une annulation" dans git?

git reset --soft HEAD^ 

Mais je l'ai fait trop de fois. Maintenant, je veux revenir en arrière un couple. Est-ce possible?

En outre, j'avais un développeur tirer et fusionner le code sur une application de production qui a complètement tout raflé. Ensuite, pour le réparer, il a manuellement écrasé certains fichiers dans la source de l'application. Il y a de mauvais commits. Les applications ne fonctionnent pas.

Est-il possible de faire une réinitialisation matérielle à un moment donné dans Git? Je ne suis pas assez familier avec ça.

+0

Que faites-vous? Pourquoi ne poses-tu pas une nouvelle question plutôt que de changer complètement ta question? – manojlds

+0

Je suis vraiment désolé manojlds, je me suis heurté à mon 6 dans les 24 heures et mon urgence a été escaladé grand temps. – AKWF

+0

Je ne suis pas autorisé par StackOverflow à en demander plus de 6 en 24 heures. J'ai couru contre ma limite. C'est pourquoi j'ai dû changer ma dernière question. – AKWF

Répondre

5

Utilisez git reflog pour voir où vous étiez et réinitialiser à cela. (Ou notation utilisation comme [email protected]{1} à reset)

Pour l'autre question, de git log obtenir le hachage de vous engager à réinitialiser à faire et git reset --hard <sha1>. Ou vous pouvez même faire git reset --hard [email protected]{1 day ago} etc si vous vouliez réinitialiser à un certain temps dans le passé. Puisque vous réécrivez l'histoire, vous devrez faire une poussée de force - git push -f

Aussi, pourquoi les développeurs poussent-ils à la production? Avoir des portes - CI, test, etc.

2

Y a-t-il un moyen de faire une réinitialisation matérielle à un moment donné dans Git?

Oui. git reset --hard <SHA1-id-of-the-commit-you-want-to-hard-reset-to>

Voir here (Undoing in Git - Reset, Checkout and Revert) pour plus d'informations sur git reset. Pour apprendre les bases de la récupération de données, s'il vous plaît voir ici: Data Recovery Section in Chapter 9 of ProGit book.

Quelques conseils supplémentaires sur how to undo things in git.