2010-08-30 4 views
8

Disons que j'ai un fichier .noise à la racine de mon dépôt. Ce fichier est fréquemment modifié et validé par d'autres membres de mon équipe.Ignorer les fichiers déjà dans un référentiel SANS les supprimer

Je veux complètement ignorer ce fichier pendant que je commets moi-même quelque chose, mais je veux quand même tirer les changements des autres, et je ne veux pas supprimer le fichier. Si j'utilise .git/info/exclude, alors je dois git rm --cached le fichier afin qu'il n'apparaisse pas dans le repo.

en ce moment qui me apporte de:

# On branch master 
# Changed but not updated: 
# (use "git add <file>..." to update what will be committed) 
# (use "git checkout -- <file>..." to discard changes in working directory) 
# 
# modified: .noise 
# 
# No changes added to commit (use "git add" and/or "git commit -a") 

à:

# On branch master 
# Changes to be committed: 
# (use "git reset HEAD <file>..." to unstage) 
# 
# deleted: .noise 
# 

Les 'changements à engager' me fait peur. Je ne veux pas pousser la suppression de .noise vers la télécommande, je ne veux pas non plus la supprimer sur mon filessytem. Je ne veux juste pas que Git voie ou ait quelque chose à voir avec ça. Je pensé que git rm --cached n'était pas censé mettre en scène des changements? N'est-ce pas?

Des idées?

+0

Modifiez-vous ce fichier par vous-même? Voulez-vous voir les changements à distance de ce fichier dans votre arbre de travail? – Shcheklein

Répondre

14

Vous pouvez utiliser:

$ git update-index --assume-unchanged -- .noise 

update-index --assume-unchanged fera Git continuer à suivre le fichier, mais vos modifications ne seront pas reflétée dans l'indice ou ajouté à la prise en pension.

+0

Pour autant que je sache, cela fonctionnera si le fichier ne sera pas modifié. Git ne parvient pas à tirer des validations qui modifient ce fichier d'une façon ou d'une autre: "Git échouera (gracieusement) au cas où il aurait besoin de modifier ce fichier dans l'index, par exemple lors de la fusion dans un commit. vous devrez gérer la situation manuellement. " (Voir git-update-index (1)) – Shcheklein

+0

'git-update-index -assume-unchanged' est quelque chose que j'ai essayé il y a quelque temps. Aucun effet! L'ajout du '- .noise' semblait le faire. Maintenant, c'est intéressant parce que je pensais que update-index passait en boucle dans le répertoire à la recherche de changements. Je ne savais pas qu'il devait être appelé sur des fichiers individuels. Merci. –

+0

@Shcheklein "Git échouera à tirer des commits qui modifient ce fichier d'une manière ou d'une autre" Eh bien peut-être que ce n'est pas la solution finale. Je vais devoir tester et vérifier si les commits à distance sont abaissés. –

Questions connexes