web-dev-qa-db-fra.com

Supprimer temporairement les fichiers de git

J'ai installé un git local sur ma machine. Lorsque j'ai initialisé git, j'ai ajouté des bibliothèques et des fichiers binaires pré-compilés. Cependant, au cours de mon développement, je ne veux pas archiver ces fichiers par intermittence. Je ne veux pas supprimer ces fichiers du repo. Est-il possible de ne pas garder une trace de ces fichiers tant que je n'ai pas terminé mon développement? (Je pense que je ne peux pas utiliser .gitignore car cela ne fonctionne que pour les fichiers qui ne sont pas dans git. Je souhaite désactiver temporairement le suivi des fichiers.)

409
agent.smith

git update-index devrait faire ce que vous voulez

Cela indiquera à git que vous souhaitez commencer à ignorer les modifications apportées au fichier.
git update-index --assume-unchanged path/to/file

Quand vous voulez recommencer à suivre
git update-index --no-assume-unchanged path/to/file

Documentation Github: update-index

657
Andy

vous pouvez garder vos fichiers non suivis après

git rm -r --cached <file>

ajoutez vos fichiers avec

git add -u

poussez ou faites ce que vous voulez.

226
cajuuh
git rm --cached

Cependant, vous ne devriez pas commencer par valider des fichiers binaires compilés et des dépendances externes. Utilisez un outil tel que Bundler pour attirer ceux-ci à la place.

106
Tekkub

Utilisez la commande suivante pour extraire les fichiers

git rm --cached <file path>
22
Dinesh Vaitage

Le git-book mentionne cela dans la section 2.4: "Annuler des choses". Fondamentalement, vous devez réinitialiser l’état de l’index de certains fichiers sur l’état HEAD, c’est-à-dire sur l’état de la dernière extraction (ou validation). Cela annule le transfert du fichier vers l'index actuel. La commande pour cette tâche est git reset. [1]

Donc, la commande que vous devez exécuter est la suivante:

git reset HEAD /path/to/file

Les versions les plus récentes de git (je crois depuis la version 1.6 environ) donnent cette commande (et bien d’autres encore) comme astuce lors de l’exécution de git status. Ces versions sont très conviviales. Un conseil personnel: si vous ne stockez que quelques fichiers, utilisez git add -i. Cela lancera l'outil de mise en scène interactif, ce qui rend la chose particulièrement facile. De plus, je recommande fortement de lire le livre, car il est très explicite sur l’utilisation de git dans des situations pratiques.

[1] http://www.git-scm.com/book

8
Eric Spreen

Je suppose que vous demandez comment supprimer TOUS les fichiers du dossier de construction ou du dossier bin, plutôt que de sélectionner chaque fichier séparément.

Vous pouvez utiliser cette commande:

git rm -r -f /build\*

Assurez-vous que vous vous trouvez dans le répertoire parent du répertoire de construction.
Cette commande "supprimera" de manière récursive tous les fichiers qui se trouvent dans le dossier bin/ou build /. Par Word supprimer, je veux dire que git prétendra que ces fichiers sont "supprimés" et que ces fichiers ne seront pas suivis. Le git marque vraiment ces fichiers pour être en mode suppression.

Assurez-vous que votre .gitignore est prêt pour les prochains commits.
Documentation: git rm

5
Vraj Pandya

Pas une réponse à la question initiale. Mais cela pourrait aider quelqu'un.

Pour voir les modifications que vous avez effectuées (savoir quels fichiers sont marqués comme --assume-inchangé)

git ls-files -v

La liste de fichiers résultante aura un préfixe avec un caractère (ex: H ou h) Si c'est une minuscule (i.e. h) alors le fichier était marqué --assume-inchanged

4
prime

git reset [fichier]

Récupérer le fichier de la zone intermédiaire vers le répertoire de travail

J'oublie souvent d'ajouter mes modules de nœud au fichier .gitignore, cela résout ce problème.

1
lordharbar

Cela a fonctionné pour moi

git reset HEAD 'nomfichier'

1
Vivek

Pour supprimer tous les fichiers Untrack.Essayez cette commande de terminal

 git clear -fdx
0
divya d