web-dev-qa-db-fra.com

Réinitialiser toutes les modifications après le dernier commit dans git

Comment puis-je annuler chaque modification apportée à mon répertoire après la dernière validation, y compris la suppression de fichiers ajoutés, la réinitialisation de fichiers modifiés et l'ajout de fichiers supprimés?

295
Dogbert

D'abord réinitialiser les modifications

git reset HEAD --hard

puis nettoyez tout ce qui n'a pas été suivi. Si vous souhaitez conserver des fichiers qui ne sont pas suivis en raison de .gitignore, soyez prudent avec cette commande.

git clean -fd
513
Benjamin Bannier

Comment puis-je annuler chaque modification apportée à mon répertoire après la dernière validation, y compris la suppression de fichiers ajoutés, la réinitialisation de fichiers modifiés et l'ajout de fichiers supprimés?

  1. Vous pouvez annuler les modifications apportées aux fichiers suivis avec:

    git reset HEAD --hard
    
  2. Vous pouvez supprimer les fichiers non suivis avec:

    git clean -f
    
  3. Vous pouvez supprimer les fichiers et répertoires non suivis avec:

    git clean -fd
    

    mais vous ne pouvez pas annuler le changement en fichiers non suivis.

  4. Vous pouvez supprimer les fichiers et répertoires ignorés et non suivis

    git clean -fdx
    

    mais vous ne pouvez pas annuler le changement en fichiers ignorés.

Vous pouvez également définir clean.requireForce sur false:

git config --global --add clean.requireForce false

pour éviter d'utiliser -f (--force) lorsque vous utilisez git clean.

60
Ortomala Lokni

Il y a deux commandes qui fonctionneront dans cette situation,

racine> git reset --hard HEAD ~ 1

racine> git Push -f

Pour plus de commandes git, référez vous à ceci page

0
RKS