351 votes

git: Changez de branche et ignorez les changements sans valider

Je travaillais sur une branche git et était prêt à s'engager de mes modifications, j'ai donc fait un commit un message de commit. J'ai alors distraitement apporté des modifications mineures au code qui ne sont pas utile de garder. Maintenant, je veux changer de branches, mais git me donne,

erreur: Vous avez des modifications locales "X"; impossible de passer les branches.

J'ai pensé que je pouvais changer les branches sans commettre. Si oui, comment puis-je le configurer? Si non, comment puis-je sortir de ce problème? Je veux ignorer les changements mineurs sans commettre et il suffit de changer les branches.

459voto

VonC Points 414372

Vous devez:

  • ranger votre modification en cours ou
  • reset --hard HEAD (si vous n'avez pas de perdre ces changements mineurs) ou
  • checkout -f (Lors de la commutation de branches, aller de l'avant même si l'indice ou de l'arbre de travail diffère de la TÊTE. Ce est utilisé pour jeter les modifications locales. )

Vous avez besoin d'un état propre à modifier branches (seulement si la direction de la modification affecte la sale des fichiers", comme Charles Bailey remarques dans les commentaires)

140voto

Jamie Macey Points 1528

Si vous voulez annuler les modifications,

 git checkout -- <file>
git checkout branch
 

Si vous voulez garder les changements,

 git stash save
git checkout branch
git stash pop
 

70voto

romerun Points 568
C'est un tort.

25voto

simplyharsh Points 11663

Suivre,

 $: git checkout -f

$: git checkout next_branch
 

8voto

Greg Hewgill Points 356191

Si vous avez modifié des fichiers que Git doit également changer lors du changement de branche, il ne vous le permettra pas. Pour annuler les modifications de travail, utilisez:

 git reset --hard HEAD
 

Ensuite, vous serez en mesure de changer de branche.

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