Je viens de faire un
git commit -m "blah"
puis j'ai ajouté des fichiers, comment puis-je restaurer et supprimer ce qui se trouve dans mes fichiers actuels qui n'ont pas encore été ajoutés / validés?
Je viens de faire un
git commit -m "blah"
puis j'ai ajouté des fichiers, comment puis-je restaurer et supprimer ce qui se trouve dans mes fichiers actuels qui n'ont pas encore été ajoutés / validés?
Réponses:
Caveat Emptor - Commandes destructives à venir.
Atténuation - git reflog
peut vous sauver si vous en avez besoin.
1) ANNULER les modifications du fichier local et GARDER votre dernier commit
git reset --hard
2) ANNULER les modifications du fichier local et SUPPRIMER votre dernier commit
git reset --hard HEAD^
3) GARDEZ les modifications de fichier local et SUPPRIMEZ votre dernier commit
git reset --soft HEAD^
Si vous souhaitez supprimer le contenu nouvellement ajouté et les fichiers déjà mis en scène (ainsi ajoutés à l'index), vous utilisez:
git reset --hard
Si vous souhaitez supprimer également votre dernier commit (est celui avec le message "blah") alors mieux vaut utiliser:
git reset --hard HEAD^
Pour supprimer les fichiers non suivis (donc les nouveaux fichiers non encore ajoutés à l'index) et les dossiers, utilisez:
git clean --force -d
git reset --hard
forcera le répertoire de travail à revenir au dernier commit et supprimera les fichiers nouveaux / modifiés.
Vous pouvez annuler un commit en utilisant git revert HEAD^
pour revenir à l'avant-dernier commit. Vous pouvez également spécifier le commit à annuler en utilisant l'id au lieu de HEAD ^
Si vous souhaitez simplement annuler la validation du dernier commit, utilisez ceci:
git reset HEAD~
fonctionne comme du charme pour moi.
Un moyen simple et infaillible d'annuler les modifications de fichiers locaux depuis le dernier commit est de les placer dans une nouvelle branche:
git branch changes
git checkout changes
git add .
git commit
Cela laisse les changements dans la nouvelle branche. Revenez à la branche d'origine pour la retrouver au dernier commit:
git checkout master
La nouvelle branche est un bon endroit pour pratiquer différentes manières d'annuler les modifications sans risquer de gâcher la branche d'origine.