Quand je cours git reset --hard HEAD
, il est censé réinitialiser une version vierge de ce que vous avez tiré, si je comprends bien. Malheureusement, il laisse des fichiers traîner, comme le git status
montre une grande liste de fichiers non suivis.
Comment dites-vous à git "Ramenez-le à EXACTEMENT ce qui était dans le dernier pull, rien de plus, rien de moins"?
git reset --hard
réinitialise votre index et ramène les fichiers suivis à leur état tel qu'ils sont dans HEAD. Il laisse seuls les fichiers non suivis.Réponses:
Vous devez utiliser
git clean -f -d
pour vous débarrasser des fichiers et répertoires non suivis dans votre copie de travail.Si vous devez réinitialiser l'ensemble du référentiel pour qu'il soit maître, y compris tous les sous-modules git, exécutez ce script:
la source
-x
si vous souhaitez supprimer vos fichiers .gitignored et revenir à un état vierge.-n
au test serait supprimé en premier. combinez-les tous dans un seul argument:-dfn
git clean -qfdx
ici. Retirez tout et faites-le en silence.-d -f
peut être détartré deux fois-dff
pour-d -f -f
, cela supprimera TOUS les répertoires non suivis, y compris les répertoires protégés non suivis.Si vous avez des fichiers que vous souhaitez conserver:
git clean -di
fera un nettoyage interactif qui vous permet de supprimer uniquement les fichiers / répertoires dont vous ne voulez plus.la source
ou, zsh fournit un alias 'gpristine':
Ce qui est vraiment pratique.
Si vous travaillez sur un dépôt fourchu, assurez-vous de récupérer et de réinitialiser à partir du dépôt / branche correct, par exemple:
la source
-x
similaires si vous venez de cloner le dépôt. Si c'est ce que vous voulez, c'est parfait. Si vous souhaitez simplement supprimer les fichiers non suivis , la suppression de l'-x
option fonctionne bien.gpristine
Approche interactive utilisateur:
-i pour interactif
-f pour forcer
-d pour répertoire
-x pour les fichiers ignorés (ajouter si nécessaire)
Remarque: Ajoutez -n ou --dry-run pour vérifier simplement ce qu'il fera.
la source
Vous pouvez utiliser
git stash
. Vous devez spécifier--include-untracked
, sinon vous vous retrouverez avec le problème d'origine.Ensuite, déposez simplement la dernière entrée dans la cachette
Vous pouvez créer un alias pratique pour cela, et l'appeler
git wipe
par exemple:la source
La commande que vous recherchez est
git clean
la source
git-clean
Utilisez pour supprimer les fichiers non suivis dans l'arborescence de travail. Voici quelques options (en bref) qui peuvent être utilisées avec lagit clean
commande.-d
à utiliser lorsqu'aucun chemin n'est spécifié. Donc, git recurse dans des répertoires non suivis les supprime.-f/--force
Pour supprimer les fichiers imbriqués non suivis.-i/--interactive
Montrez ce qui serait fait et nettoyez les fichiers de manière interactive.-n/--dry-run
Montrez ce qui se passera sans rien supprimer.-x
ignorer les fichiersexemple:
git clean -f -d
-> Supprimer tous les fichiers non suivis dans le répertoire courant des sous-répertoires.la source
Vous avez peut-être effectué une réinitialisation logicielle à un moment donné, vous pouvez résoudre ce problème en faisant
la source