141 votes

Comment supprimer toutes les modifications apportées à une branche ?

Je travaille dans une succursale (c'est à dire design ) et j'ai effectué un certain nombre de modifications, mais j'ai besoin de les supprimer toutes et de les réinitialiser pour qu'elles correspondent à la version du référentiel. Je pensais git checkout design le feraient, mais ça me dit juste que je suis déjà dans la branche. design et que j'ai 3 fichiers modifiés.

Comment puis-je supprimer ces modifications et obtenir la branche telle qu'elle se présente actuellement sur le serveur distant ?

0 votes

Voici un lien vers ma réponse à une question connexe : stackoverflow.com/questions/22620393/

244voto

ismail Points 19146

Remarque : Vous IMPOSSIBLE D'ANNULER ceci.

Essayez git checkout -f cela supprimera tous les changements locaux qui sont no commis en TOUTES branches et master.

0 votes

Ça a marché ! Merci ! J'ai essayé de passer à la caisse mais ça n'a pas marché. Il n'arrêtait pas de dire que je devais "commit" ou "stash" mais tout ce que je veux c'est mettre à la poubelle toutes les modifications que j'ai faites. Et ça a marché ! Merci.

96voto

gor Points 6313

git reset --hard peut vous aider si vous voulez tout jeter depuis votre dernier engagement

6 votes

Ou git reset --hard HEAD^

35 votes

git reset --hard HEAD^ devrait vraiment être la réponse acceptée. L'OP ne demandait pas pour les autres branches...

2 votes

J'ai essayé cela, et je pense que cela a tout effacé depuis mon dernier push, pas seulement mon dernier commit.

26voto

Mike Kaganski Points 477
git diff master > branch.diff
git apply --reverse branch.diff

0 votes

Ces étapes peuvent être très utiles, si votre objectif est de mettre l'état d'une branche spécifique au même niveau que la branche principale. Pour ce faire, exécutez cette étape à partir de la branche spécifique, puis supprimez le fichier [nom de la branche].diff lorsque vous avez terminé en utilisant git rm [branch name].diff

19voto

mipadi Points 135410

Si vous ne voulez pas cualquier les changements dans design et que vous voulez absolument qu'elle corresponde à la branche d'une personne distante, vous pouvez aussi supprimer la branche et la recréer :

# Switch to some branch other than design
$ git br -D design
$ git co -b design origin/design            # Will set up design to track origin's design branch

7 votes

Aussi : git checkout design ; git reset --hard origin/design

0 votes

Je ferais également un commit avant de supprimer la branche

0 votes

Si vous avez des commits dans la branche locale qui ne sont pas sur la branche distante, c'est une recette pour se retrouver dans des situations vraiment confuses à mon avis. Je voudrais vraiment no utiliser cette solution.

7voto

Cesar A. Rivas Points 1267

@Will, immersion dans git est un tutoriel git simple et agréable. il vous montrera comment annuler des modifications dans les cas suivants : unstaged, staged et committed. labos 14-18

2 votes

Je voudrais juste dire que j'ai maintenant fait l'immersion git ... plus d'un an après. OI ! J'aurais dû le faire beaucoup plus tôt ...

1 votes

Ce besoin Ruby à installer ce qui ne semble pas toujours être un choix

0 votes

S'il vous plaît, ajoutez les informations pertinentes dans ce post, afin que la réponse ne meure pas le jour où le lien pourrit.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X