Comment supprimez-vous les fichiers locaux non suivis de votre arborescence de travail actuelle?
git
branch
git-branch
Lecture seulement
la source
la source
git clean
dispose désormais d'un mode interactif ! Voir ma réponse à cette autre question : git 1.8.4+git clean
ou certaines variations dans les réponses ci-dessous, y compris la version interactive pour supprimer uniquement les fichiers sélectifs, mais le mode interactif peut être fastidieux. Quoi que vous fassiez, assurez-vous de comprendre ce quigit clean
sera supprimé ou utilisé--dry-run
pour qu'il vous le dise sans rien supprimer.rm files-to-be-deleted
Réponses:
L'étape 1 consiste à montrer ce qui sera supprimé en utilisant l'
-n
option:Clean Step - méfiez - vous: cela supprimera les fichiers :
git clean -f -d
ougit clean -fd
git clean -f -X
ougit clean -fX
git clean -f -x
ougit clean -fx
Notez la différence de casse sur
X
les deux dernières commandes.Si
clean.requireForce
est défini sur "true" (par défaut) dans votre configuration, il faut spécifier-f
sinon rien ne se passera réellement.Voir à nouveau la
git-clean
documentation pour plus d'informations.la source
git clean -f
ne fonctionne que dans le répertoire où il est appelé (et dans les sous-répertoires). Si vous souhaitez nettoyer l'intégralité de la copie de travail, vous devez l'appeler dans son répertoire racine.git clean -f :/
fonctionne comme si vous l'aviez exécuté dans le répertoire racine repo. Voir aussi les réponses ultérieures qui tiennent également compte des sous-modules avecgit clean -ffxd :/
Utilisez
git clean -f -d
pour vous assurer que les répertoires sont également supprimés.Ne supprimez rien, montrez simplement ce qui serait fait.
ou
Supprimez les répertoires non suivis en plus des fichiers non suivis. Si un répertoire non suivi est géré par un autre référentiel Git, il n'est pas supprimé par défaut. Utilisez l'
-f
option deux fois si vous voulez vraiment supprimer un tel répertoire.Vous pouvez ensuite vérifier si vos fichiers ont vraiment disparu
git status
.la source
git clean -n -d
git clean -nd
etgit clean -fd
.Je suis surpris que personne n'en ait parlé auparavant:
Cela signifie interactif et vous obtiendrez un aperçu rapide de ce qui va être supprimé en vous offrant la possibilité d'inclure / exclure les fichiers concernés. Dans l'ensemble, c'est encore plus rapide que d'exécuter la tâche obligatoire
--dry-run
avant le vrai nettoyage.Vous devrez ajouter un
-d
si vous souhaitez également vous occuper des dossiers vides. Au final, cela donne un joli alias:Cela dit, la prise en main supplémentaire des commandes interactives peut être fatigante pour les utilisateurs expérimentés. Ces jours-ci, j'utilise juste le déjà mentionné
git clean -fd
la source
git clean -i
ne fonctionne que s'il est appelé à partir de la racine de la copie de travail?git-clean
- Supprimer les fichiers non suivis de l'arborescence de travailla source
Si le répertoire non suivi est un référentiel git qui lui est propre (par exemple un sous-module), vous devez utiliser
-f
deux fois:git clean -d -f -f
la source
Un moyen simple de supprimer les fichiers non suivis
Pour supprimer tous les fichiers non suivis, le moyen le plus simple consiste à les ajouter tous en premier et à réinitialiser le référentiel comme ci-dessous
la source
git add --all
pargit add .
. Vous pouvez donc le faire de manière plus courte en lignegit add . && git reset --hard HEAD
(soyez très prudent avec cette commande) .git clean
?git clean
qu'apparemment, supprime également tout ce qui est ignoré. Il vient de supprimer monnode_modules
dossier. Faire cela commencerait par l'étape tous les fichiers à l'exception de ceux ignorés, puis les supprimer en faisant une réinitialisation. Les fichiers ignorés ne seront pas touchés.git clean -n
quand même exécuter avant de supprimer (ou utilisergit clean -i
).git clean
supprime les fichiers ignorés uniquement si vous utilisez l' option-x
ou-X
, sinon il supprime simplement les fichiers non suivis.J'aime
git stash push -u
parce que vous pouvez tous les annuler avecgit stash pop
.EDIT: J'ai également trouvé un moyen d'afficher le fichier non suivi dans une cachette (par exemple
git show stash@{0}^3
) https://stackoverflow.com/a/12681856/338986EDIT2:
git stash save
est déconseillé en faveur depush
. Merci @ script-wolf.la source
-u
est équivalent à--include-untracked
. Vous pouvez trouver une aide avecgit help stash
.save
option a été déconseillée en faveur depush
, qui fait de même mais en plus. Vous pouvez en savoir plus ici, /programming/44680028/whats-the-difference-between-git-stash-save-and-git-stash-push/44681952C'est ce que j'utilise toujours:
Pour un très gros projet, vous voudrez peut-être l'exécuter plusieurs fois.
la source
git-clean est ce que vous recherchez. Il est utilisé pour supprimer les fichiers non suivis de l'arborescence de travail.
la source
Si nécessaire pour supprimer des fichiers non suivis d'un sous-répertoire particulier,
Et moyen combiné de supprimer les fichiers / répertoires non suivis et les fichiers ignorés.
après cela, vous n'aurez modifié les fichiers qu'en
git status
.la source
Supprimez tous les dossiers et fichiers supplémentaires dans ce repo + sous-modules
Cela vous met dans le même état que le clone frais.
Supprimez tous les dossiers et fichiers supplémentaires de ce référentiel, mais pas ses sous-modules
Supprimez les dossiers supplémentaires mais pas les fichiers (ex. Dossier de build ou de journaux)
Supprimer les dossiers supplémentaires + les fichiers ignorés (mais pas les fichiers nouvellement ajoutés)
Si le fichier n'a pas été ignoré et n'est pas encore enregistré, il reste. Notez le X majuscule.
Nouveau mode interactif
la source
git clean -fd
supprime le répertoiregit clean -fX
supprime les fichiers ignorésgit clean -fx
supprime les fichiers ignorés et non ignoréspeut être utilisé toutes les options ci-dessus en combinaison comme
git clean -fdXx
consultez le manuel de git pour plus d'aide
la source
git clean -fdXx
génère le message d'erreur "fatal: -x et -X ne peuvent pas être utilisés ensemble" (en utilisant git-2.8). Pour votre dernière phrase dans votre réponse, veuillez fournir un lien vers le manuel git. ViveOK, la suppression des fichiers et dossiers indésirables non suivis est facile à utiliser
git
en ligne de commande, faites-le comme ceci:Revérifier avant de le faire car cela supprimera les fichiers et les dossiers sans faire d'historique ...
Dans ce cas également,
-f
signifie force et-d
répertoire ...Donc, si vous souhaitez supprimer uniquement des fichiers, vous ne pouvez utiliser
-f
que:Si vous souhaitez supprimer (répertoires) et fichiers, vous ne pouvez supprimer que les répertoires et fichiers non suivis comme ceci:
De plus, vous pouvez utiliser
-x
flag pour inclure les fichiers qui sont ignorés par git. Ce serait utile si vous souhaitez tout supprimer.Et en ajoutant un
-i
indicateur, git vous demande la permission de supprimer les fichiers un par un en déplacement.Si vous n'êtes pas sûr et souhaitez d'abord vérifier les choses, ajoutez un
-n
indicateur.À utiliser
-q
si vous ne souhaitez voir aucun rapport après une suppression réussie.Je crée également l'image ci-dessous pour la rendre plus mémorable, surtout j'ai vu beaucoup de gens
-f
parfois confondre pour nettoyer le dossier ou le mélanger d'une manière ou d'une autre!la source
Une meilleure façon est d'utiliser: git clean
Cela supprime les fichiers non suivis, y compris les répertoires
(-d)
et les fichiers ignorés pargit (-x)
.Remplacez également l'
-f
argument par-n
pour effectuer undry-run
ou-i
pour le mode interactif et il vous indiquera ce qui sera supprimé.la source
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
Un lifehack pour une telle situation que je viens d'inventer et d'essayer (qui fonctionne parfaitement):
Il faut se méfier! Assurez-vous de valider toutes les modifications nécessaires (même dans les fichiers non suivis) avant d'effectuer cette opération .
la source
git add .
git commit -m 'about to delete'
git reset --hard HEAD~
git add . && git reset --hard HEAD
git add . && git reset --hard
git reset --hard
réinitialise toutes les modifications non validées MAIS LES FICHIERS NON SUIVIS à l'état de la dernière validation. C'est pourquoi nous avons d'abord besoingit add .
- qui met en scène tous les fichiers non suivis (donc ils sont également réinitialisés)git clean -f -d -x $(git rev-parse --show-cdup)
s'applique propre au répertoire racine, peu importe où vous l'appelez dans une arborescence de répertoires de référentiel. Je l'utilise tout le temps car cela ne vous oblige pas à quitter le dossier où vous travaillez maintenant et permet de nettoyer et de valider directement de l'endroit où vous êtes.Assurez - vous que les drapeaux
-f
,-d
,-x
correspondent à vos besoins:Il y a d'autres drapeaux également disponibles, vérifiez simplement
git clean --help
.la source
Pour moi, seuls les suivants ont travaillé:
Dans tous les autres cas, je recevais le message "Skipping Directory" pour certains sous-répertoires.
la source
-x
et juste utiliségit clean -ffd
pour éviter d'effacer les fichiers dans le .gitignore.Si vous souhaitez simplement supprimer les fichiers répertoriés comme non suivis par 'git status'
Je préfère cela à «git clean» car «git clean» supprimera les fichiers ignorés par git, donc votre prochaine génération devra tout reconstruire et vous risquez également de perdre vos paramètres IDE.
la source
Pour savoir ce qui sera supprimé avant de supprimer réellement:
git clean -d -n
Il produira quelque chose comme:
Supprimerait sample.txt
Pour supprimer tout ce qui est répertorié dans la sortie de la commande précédente:
git clean -d -f
Il produira quelque chose comme:
Suppression de sample.txt
la source
Pour supprimer les fichiers non suivis, vous devez d'abord utiliser la commande pour afficher les fichiers qui seront affectés par le nettoyage
Cela vous montrera la liste des fichiers qui seront supprimés. Maintenant, pour supprimer réellement ces fichiers, utilisez cette commande:
la source
Soyez prudent lorsque vous exécutez la commande `git clean`.
Utilisez toujours
-n
avant d'exécuter la commande réelle car elle vous montrera quels fichiers seront supprimés.Par défaut,
git clean
ne supprimera que les fichiers non suivis qui ne sont pas ignorés. Tout fichier qui correspond à un modèle dans votre .gitignore ou tout autre fichier ignoré ne sera pas supprimé. Si vous souhaitez également supprimer ces fichiers, vous pouvez ajouter un-x
à la commande clean.Un mode interactif est également disponible
-i
avec la commande cleanAlternativement
Si vous n'êtes pas sûr à 100% que la suppression de votre travail non engagé est sûre, vous pouvez utiliser le masquage à la place
Il effacera également votre répertoire mais vous donnera la possibilité de récupérer les fichiers à tout moment en utilisant stash avec apply ou pop . Plus tard, vous pourrez vider votre cachette en utilisant:
la source
git stash save and type some comment as to what this stash was for
git clean -f to remove untracked files from working directory.
J'ai couvert quelques notions de base ici dans mon blog, git-intro-basic-commandes
la source
uggested Command for Removing Untracked Files from git docs is git clean
git clean - Supprime les fichiers non suivis de l'arborescence de travail
Méthode suggérée: mode interactif en utilisant
git clean -i
afin que nous puissions avoir le contrôle sur celui-ci. laissez voir les options disponibles restantes.Options disponibles:
Explication:
1. -d
Supprimez les répertoires non suivis en plus des fichiers non suivis. Si un répertoire non suivi est géré par un autre référentiel Git, il n'est pas supprimé par défaut. Utilisez l'option -f deux fois si vous voulez vraiment supprimer un tel répertoire.
2. -f, --force
Si la variable de configuration Git clean.requireForce n'est pas définie sur false, git clean refusera de s'exécuter à moins d'indiquer -f, -n ou -i.
3. -i, --interactif
Montrez ce qui serait fait et nettoyez les fichiers de manière interactive. Voir «Mode interactif» pour plus de détails.
4. -n, --dry-run
Ne supprimez rien, montrez simplement ce qui serait fait.
5. -q, --quiet
Soyez silencieux, ne signalez que les erreurs, mais pas les fichiers qui ont été supprimés avec succès.
6. -e, --exclure =
En plus de ceux trouvés dans .gitignore (par répertoire) et $ GIT_DIR / info / exclude, considérez également ces modèles comme faisant partie de l'ensemble des règles d'ignorance en vigueur.
7. -x
N'utilisez pas les règles d'ignorance standard lues depuis .gitignore (par répertoire) et $ GIT_DIR / info / exclude, mais utilisez toujours les règles d'ignorance fournies avec les options -e. Cela permet de supprimer tous les fichiers non suivis, y compris les produits de génération. Cela peut être utilisé (éventuellement en conjonction avec git reset) pour créer un répertoire de travail vierge pour tester une construction propre.
8. -X
Supprimez uniquement les fichiers ignorés par Git. Cela peut être utile pour tout reconstruire à partir de zéro, mais conservez les fichiers créés manuellement.
la source
uggested
mais ce n'est qu'un "uggestion
lolLa
git clean
commande normale ne supprime pas les fichiers non suivis avec mongit version 2.9.0.windows.1
.la source
Nous pouvons facilement supprimer les fichiers locaux non suivis de l'arborescence de travail git actuelle en utilisant les commentaires git ci-dessous.
Exemple:
Liens :
la source
git clean -ffdx
est la solutionla source
supprimera les fichiers non suivis du git actuel
lorsque vous souhaitez supprimer des répertoires et des fichiers, cela supprimera uniquement les répertoires et fichiers non suivis
la source
oh-my-zsh avec zsh fournit ces grands alias via le plugin git. Ils peuvent également être utilisés en bash.
gclean='git clean -fd'
gpristine='git reset --hard && git clean -dfx'
gclean
supprime les répertoires non suivis en plus des fichiers non suivis .gpristine
Réinitialisez les modifications locales, supprimez les répertoires non suivis, les fichiers non suivis et n'utilisez pas les règles d'ignorance standard lues dans .gitignore (par répertoire) et $ GIT_DIR / info / exclude, mais utilisez toujours les règles d'ignorance fournies avec les options -e. Cela permet de supprimer tous les fichiers non suivis, y compris les produits de construction. Cela peut être utilisé (éventuellement en conjonction avec git reset) pour créer un répertoire de travail vierge pour tester une construction propre .la source
bash
. J'ai modifié ma réponse pour refléter cela.J'aime utiliser la
git stash
commande, plus tard, vous pouvez obtenir des fichiers et des modifications cachés.git clean
est également une bonne option mais dépend totalement de vos besoins. voici l'explication de git stash et git clean, 7.3 Git Tools - Stashing and Cleaningla source