Je travaille dans une branche (c'est-à-dire design
) et j'ai fait un certain nombre de modifications, mais je dois les supprimer toutes et les réinitialiser pour qu'elles correspondent à la version du référentiel. Je pensais que je git checkout design
le ferais, mais cela me dit juste que je suis déjà en branche design
et que j'ai 3 fichiers modifiés.
Comment annuler ces modifications et récupérer la branche telle qu'elle se présente sur le serveur distant?
git reset --hard HEAD^
git reset --hard HEAD^
devrait vraiment être la réponse acceptée. OP ne posait pas de questions sur les autres branches ...la source
git rm [branch name].diff
Si vous ne voulez pas de modifications
design
et que vous voulez vraiment qu'il corresponde simplement à la branche d'une télécommande, vous pouvez également simplement supprimer la branche et la recréer:la source
@Will, git immersion est un tutoriel git vraiment sympa et simple. il vous montrera comment annuler les modifications dans les cas suivants: non mis en scène, mis en scène et validé. laboratoires 14-18
la source
Ruby
être installé ... ce qui ne semble pas toujours un choixLorsque vous souhaitez annuler les modifications de votre branche locale, vous pouvez les cacher à l'aide de la commande git stash.
git stash save "un_nom"
Vos modifications seront enregistrées et vous pourrez les récupérer plus tard, si vous le souhaitez ou vous pouvez les supprimer. Après cela, votre branche n'aura aucun code non validé et vous pouvez extraire le dernier code de votre branche principale en utilisant git pull.
la source
Dans la racine source:
git reset ./ HEAD <--un-stage any staged changes git checkout ./ <--discard any unstaged changes
la source
Méthode RÉVERSIBLE pour annuler toutes les modifications:
Je trouve cette question après après avoir fait une fusion et l' oubli à la caisse développer immédiatement après. Vous l'avez deviné: j'ai commencé à modifier quelques fichiers directement sur master . D'Oh! Comme ma situation n'est guère unique (nous l'avons tous fait, n'est-ce pas; ->), je vais vous proposer un moyen réversible que j'avais l'habitude d'annuler tous les changements pour que le maître ressemble à nouveau à développer .
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é:Après avoir enregistré toutes les modifications, elles ont ensuite été effacées. Toutes les modifications apportées aux fichiers par erreur dans le master ont disparu et la parité est restaurée.
Disons que je voulais maintenant restaurer ces changements. Je peux le faire. La première étape consiste à trouver le hachage de la réserve que je viens de supprimer / déposer:
Après avoir appris le hachage, j'ai restauré avec succès les modifications non validées avec:
Je ne voulais pas vraiment restaurer ces modifications, je voulais juste valider que je pouvais les récupérer, alors je les ai effacées à nouveau.
Une autre option consiste à appliquer la réserve à une branche différente , plutôt que d'effacer les modifications. Donc, en termes d'effacement des modifications apportées après avoir travaillé sur la mauvaise branche,
stash
vous donne beaucoup de flexibilité pour récupérer de votre boo-boo.Quoi qu'il en soit, si vous voulez un moyen réversible d'effacer les modifications d'une branche, ce qui précède est un moyen moins dangereux dans ce cas d'utilisation.
la source
git checkout -f
Cela suffit pour votre question. La seule chose est, une fois que c'est fait, c'est fait. Il n'y a pas d'annulation.
la source