Méthode REVERSIBLE pour annuler toutes les modifications :
J'ai trouvé cette question après avoir fait une fusion et oublié de la vérifier. développer immédiatement après. Vous l'avez deviné : J'ai commencé à modifier quelques fichiers directement sur maître . D'Oh ! Comme ma situation n'est guère unique (nous l'avons tous fait, n'est-ce pas ;->), je vais proposer une méthode réversible que j'ai utilisée pour rejeter toutes les modifications afin d'obtenir maître On dirait que développer encore.
Après avoir fait un git diff
pour voir quels fichiers ont été modifiés et évaluer la portée de mon erreur, j'ai exécuté :
git stash
git stash clear
Après avoir d'abord rangé tous les changements, ils ont ensuite été nettoyés. Toutes les modifications apportées aux fichiers en erreur pour maître ont disparu et la parité a été rétablie.
Imaginons que je veuille maintenant restaurer ces changements. Je peux le faire. La première étape consiste à trouver le hash de la cachette que je viens de vider/supprimer :
git fsck --no-reflog | awk '/dangling commit/ {print $3}'
Après avoir appris le hachage, j'ai restauré avec succès les changements non validés avec :
git stash apply hash-of-cleared-stash
Je ne voulais pas vraiment restaurer ces changements, je voulais juste vérifier que je pouvais les récupérer, alors je les ai effacés à nouveau.
Une autre option consiste à appliquer la réserve à une autre branche plutôt que d'effacer les modifications. Donc, en termes d'effacement des changements faits en travaillant sur la mauvaise branche, stash
vous donne beaucoup de flexibilité pour vous remettre de votre bobo.
Quoi qu'il en soit, si vous voulez un moyen réversible d'effacer les modifications apportées à une branche, ce qui précède est un moyen moins dangereux dans ce cas d'utilisation.
0 votes
Voici un lien vers ma réponse à une question connexe : stackoverflow.com/questions/22620393/