Comment puis-je effacer mon répertoire de travail en git ?
Réponses
Trop de publicités?Pour réinitialiser un fichier spécifique à la dernière commis de l'état (pour ignorer les modifications non validées dans un fichier spécifique):
git checkout thefiletoreset.txt
Cela est mentionné dans l' git status
sortie:
(use "git checkout -- <file>..." to discard changes in working directory)
Pour réinitialiser l'ensemble du référentiel de la dernière commis de l'état:
git reset --hard
À retirer sans traces de fichiers, j'ai l'habitude de simplement supprimer tous les fichiers de la copie de travail (mais pas l' .git/
le dossier!), alors n' git reset --hard
ce qui laisse uniquement avec des fichiers validés.
Une meilleure façon est d'utiliser des git clean
:
git clean -d -x -f
va retirer sans traces de fichiers, y compris des répertoires (-d
) et les fichiers ignorés par git (-x
). Remplacer l' -f
argument avec -n
pour effectuer un essai à blanc ou -i
pour le mode interactif et il vous dira ce qui va être supprimé.
Liens pertinents:
Toutes les réponses jusqu'à maintenant conservent local s’engage. Si vous êtes vraiment sérieux, vous pouvez ignorer toutes les modifications locales et toutes les modifications locales par la pratique :
Par exemple :
Cela rend votre référentiel local correspondent exactement à l’état d’origine (autres que les fichiers non chaînées).
Si vous avez accidentellement fait cela après il suffit de lire la commande, et pas ce qu’il fait :), utiliser git reflog pour trouver votre vieux commet.
Vous pouvez créer un commit qui contient un vide de la copie de travail.
Ce est généralement un coffre-fort, non-destructive, car il n'implique pas l'utilisation de la force brute de réinitialisation des mécanismes. Tout d'abord vous cacher tous les contenus sont gérés avec git checkout empty
, alors vous êtes libre de passer en revue manuellement et supprimer tout ce qui non géré le contenu reste.
## create and initialize a temporary repo with an empty working copy
(
mkdir ./temp-repo && cd ./temp-repo && git init
touch ./temp-file && git add . && git commit -m "almost empty"
git rm ./temp-file && git commit -m "empty"
git tag empty
)
## fetch the history from the temporary repo
git remote add empty ./temp-repo && git fetch --tags empty && git remote rm empty
gvfs-trash ./temp-repo ## delete the temporary repo
## clear the working copy
git checkout empty
Votre copie de travail devrait être clair de tout contenu géré. Tout ce qui reste, ce sont des fichiers non gérés et l' .git
dossier lui-même.
Pour re-remplir votre copie de travail...
git checkout master ## or whatever branch you will be using