Cet article a été traduit de: git annuler toutes les modifications non validées ou non enregistrées
J'essaie d'annuler toutes les modifications depuis mon dernier commit. J'ai essayé d'annuler toutes les modifications depuis le dernier commit . J'ai essayé git reset --hard
et git reset --hard HEAD
après avoir consulté ce post . Après avoir consulté cet article, j'ai essayé git reset --hard
et git reset --hard HEAD
. Je réponds avec tête est maintenant à 18c3773 ... mais quand je regarde ma source locale tous les fichiers sont toujours là. J'ai répondu avec tête est maintenant 18c3773 ... mais quand je regarde ma source locale , tous les fichiers existent toujours . Qu'est-ce qui me manque ?
# 1 étage
# 2F
Cela mettra en scène tous les fichiers avec lesquels vous avez pu être mis en scène
git add
: Cela annuleragit add
tous les fichiers que vous avez utilisés pour mettre en scène:git reset
Cela annulera toutes les modifications locales non validées (devrait être exécuté dans la racine du référentiel): Ceci annulera toutes les modifications locales non validées (devrait être exécuté dans la racine du référentiel) (devrait être exécuté dans la racine du référentiel ):
git checkout .
Vous pouvez également annuler les modifications non validées uniquement vers un fichier ou un répertoire particulier: Vous pouvez également annuler les modifications non validées uniquement vers des fichiers ou des répertoires particuliers:
git checkout [some_dir|file.txt]
Encore une autre façon d'annuler toutes les modifications non validées (plus longues à taper, mais fonctionne à partir de n'importe quel sous-répertoire): Une autre façon d'annuler toutes les modifications non validées ( tapées plus longtemps, mais peut fonctionner à partir de n'importe quel sous-répertoire):
git reset --hard HEAD
Par Will Supprimer tout untracked locale la ces fichiers, SO seulement des fichiers git chenillés RESTENT: Cela supprimera tous les fichiers locaux trassez, seulement pour conserver le git fichier de trace:
git clean -fdx
AVERTISSEMENT:
-x
Will également ignoré le supprimer tous les fichiers, y compris ceux spécifiés par.gitignore
! AVERTISSEMENT:-x
sera ignoré supprimer tous les fichiers, y compris.gitignore
le fichier spécifié! Vous pouvez utiliser par vous-n
pour la prévisualisation de fichiers supprimés BE. Vous pouvez utiliser-n
le fichier pour afficher un aperçu à supprimer.
Pour résumer: l'exécution des commandes ci-dessous est fondamentalement équivalente à fresh git clone
from original source (mais elle ne télécharge rien, c'est beaucoup plus rapide): Pour résumer: l'exécution de la commande suivante est fondamentalement équivalente à new from the original source git clone
(but Il ne téléchargera rien de nouveau, il est donc plus rapide):
git reset
git checkout .
git clean -fdx
Une utilisation typique pour cela serait dans les scripts de construction, lorsque vous devez vous assurer que votre arborescence est absolument propre - n'a pas de modifications ou de fichiers d'objets créés localement ou de construire des artefacts, et vous voulez le faire fonctionner très rapidement et ne pas cloner tout le référentiel à chaque fois. L'utilisation typique de cette situation se trouve dans le script de construction, lorsque vous devez vous assurer que votre arborescence est absolument propre - il n'y a pas de modifications ou de fichiers d'objets créés localement ou d'artefacts de construction, et vous voulez que cela fonctionne C'est très rapide et je ne peux pas cloner à nouveau le référentiel entier à chaque fois.
# 3 étage
Aussi est là git stash
- qui « stashes » Change votre local et réappliqué peut être à une suite chuté Temps total ou IF est plus nécessaire là git stash
- il « git stash
» vos changements locaux, vous pouvez réappliquer à l'avenir, si plus nécessaire peut être supprimé
Plus d' informations sur stashing de cacher pour plus d' informations
# 4F
Td width = désir de vous si « Utilisez le undo : » Tous les changements Uncommitted RUN simplement Si vous voulez « undo » tous les changements non engagés, exécutez simplement:
git stash
git stash drop
Si vous avez des fichiers non suivis (vérifiez en exécutant git status
), ceux-ci peuvent être supprimés en exécutant: Si vous avez des fichiers non suivis (vérifiés en exécutant ), vous git status
pouvez supprimer ces fichiers en exécutant la commande suivante:
git clean -fdx
git stash
crée un nouveau stash qui deviendra stash @ {0} . git stash
Créez un nouveau stockage, il deviendra stockage @ {0} . Td s = vous souhaitez le vérifier d' abord si vous pouvez exécuter git stash list
pour afficher une liste de vos stashes. Si vous voulez vérifier, vous pouvez exécuter git stash list
pour afficher une liste de vos stashes. Il ressemblera à quelque chose: Il ressemblera à quelque chose comme :
stash@{0}: WIP on rails-4: 66c8407 remove forem residuals
stash@{1}: WIP on master: 2b8f269 Map qualifications
stash@{2}: WIP on master: 27a7e54 Use non-dynamic finders
stash@{3}: WIP on blogit: c9bd270 some changes
Chaque cache est nommé d'après le message de validation précédent. Chaque magasin est nommé d'après le message de validation précédent .
# 5F
Pour ceux qui sont arrivés ici en cherchant à annuler git clean -f -d
, par lequel un fichier créé dans eclipse a été supprimé, pour ceux qui sont arrivés ici, s'ils peuvent annuler git clean -f -d
et supprimer les fichiers créés dans eclipse ,
Vous pouvez faire la même chose à partir de l'interface utilisateur en utilisant "restaurer à partir de l'historique local" pour ref: Restaurer à partir de l'historique local Vous pouvez faire la même chose à partir de l'interface utilisateur à l'aide de " Restaurer à partir de l'historique local " pour effectuer la même opération à partir de l'interface utilisateur pour obtenir une référence: Restaurer à partir de l'historique local
# 6 étage
Etats qui passent d'un nouveau engagent à commettre d'une transition de l' Etat à soumettre une nouvelle communication
0. last commit,i.e. HEAD commit
1. Working tree changes, file/directory deletion,adding,modification.
2. The changes are staged in index
3. Staged changes are committed
Action pour la transition État des pays en action de transition
0->1: manual file/directory operation
1->2: git add .
2->3: git commit -m "xxx"
Vérifiez diff examiner les différences
0->1: git diff
0->2: git diff --cached
0->1, and 0->2: git diff HEAD
last last commit->last commit: git diff HEAD^ HEAD
Revert dernier commit à la dernière engager
2->1: git reset
1->0: git checkout . #only for tracked files/directories(actions include modifying/deleting tracked files/directories)
1->0: git clean -fdx #only for untracked files/directories(action includes adding new files/directories)
2->1, and 1->0: git reset --hard HEAD
Équivalent de git clone, sans re-télécharger quoi que ce soit est équivalent à git clone, sans re-télécharger quoi que ce soit
git reset; git checkout .; git clean -fdx