web-dev-qa-db-fra.com

Changer de branche après avoir abandonné les changements actuels dans git

J'ai cloné un repo git puis j'ai commencé à jouer dans sa branche principale. Après un moment, je veux ignorer les modifications que je viens d’apporter (sans les valider) et basculer vers une autre branche. Cependant, cela m'empêche de basculer car il y a des modifications non validées. Comment puis-je les ignorer sans les cacher? C'est ce qui se passe:

$ git checkout gh-pages
error: Your local changes to the following files would be overwritten by checkout:
        somefile.txt
Please, commit your changes or stash them before you can switch branches.
Aborting
38
highBandWidth

Option 1

git checkout -f gh-pages

Option 2

git reset --hard     # beware: don't make that a habit
git checkout gh-pages
63
sehe

Pour des raisons d'exhaustivité, et pour ceux qui ont atterri ici en cherchant: Bien que le PO demande spécifiquement une solution sans stashing , il est utile de mentionner que stash est vraiment une option très agréable:

La commande enregistre vos modifications locales et rétablit le répertoire de travail pour qu'il corresponde au commit HEAD.

Donc vous pouvez simplement

git stash

C'est comme revenir à HEAD. Lorsque nous sommes absolument certains que ces changements non engagés ne valent rien, tout simplement.

git stash drop

Vous pouvez même avoir plusieurs caches, etc. comme mentionné dans le lien de la documentation ci-dessus.

Je recommanderais cette pratique, car cela oblige à réfléchir à deux fois avant de procéder à une réinitialisation sans coût important.

12
Wtower

Vous pouvez ignorer toutes les modifications non validées.

git reset --hard HEAD

5
Kit Ho

Si vous avez un fichier non-staged, essayez:

git checkout -- .

Ou

git checkout -- filename
3
maoyang

Si vous êtes vraiment sûr que vous voulez jeter vos modifications non validées (c'est-à-dire celles qui sont mises en scène ainsi que celles de votre arbre de travail), vous pouvez faire:

git reset --hard

En général, le stockage est souvent plus sûr

3
Mark Longair

git add -A git stash

cela effacera toutes les modifications que vous avez apportées (uniquement celles qui ne sont pas validées)

0
Yoweli Kachala

Vous pouvez ignorer les modifications que vous avez apportées à un fichier spécifique:

git checkout somefile.txt

Et puis sautez doucement vers la branche:

git checkout gh-pages
0
medik