git annuler toutes les modifications non validées ou non enregistrées

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 --hardet git reset --hard HEADaprès avoir consulté ce post . Après avoir consulté cet article, j'ai essayé git reset --hardet 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

Référence: https://stackoom.com/question/x3hV/git pour annuler toutes les modifications non validées ou non enregistrées


# 2F

  • Cela mettra en scène tous les fichiers avec lesquels vous avez pu être mis en scène git add: Cela annulera git addtous 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 .gitignorele fichier spécifié! Vous pouvez utiliser par vous -npour la prévisualisation de fichiers supprimés BE. Vous pouvez utiliser -nle fichier pour afficher un aperçu à supprimer.


Pour résumer: l'exécution des commandes ci-dessous est fondamentalement équivalente à fresh git clonefrom 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 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 statuspouvez supprimer ces fichiers en exécutant la commande suivante:

git clean -fdx

git stashcrée un nouveau stash qui deviendra stash @ {0} . git stashCréez un nouveau stockage, il deviendra stockage @ {0} . Td s = vous souhaitez le vérifier d' abord si vous pouvez exécuter git stash listpour afficher une liste de vos stashes. Si vous voulez vérifier, vous pouvez exécuter git stash listpour 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 -det 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
Publié 0 articles originaux · loué 8 · 30 000+ vues

Je suppose que tu aimes

Origine blog.csdn.net/asdfgh0077/article/details/105464374
conseillé
Classement