2011-08-29 2 views
65

J'ai un fichier (config.php), qui est déjà validé dans le dépôt Git, mais je veux ignorer localement, c'est-à-dire que je veux que ce fichier reste dans le dépôt, mais force Git à ignorer les modifications.Comment ignorer les fichiers qui sont dans le dépôt?

Je mets le fichier dans .gitignore, mais il est toujours marqué comme modifié et Git tente toujours de valider les changements, chaque fois que je commets quelque chose. Une idée, qu'est-ce qui me manque ou qui ne va pas?

+0

S'il vous plaît ajouter votre fichier .gitignore - de cette façon, nous pourrions voir des problèmes à ce sujet. – Lars

+0

duplication possible de [Comment ignorer un fichier qui est déjà créé dans le commit précédent?] (Http://stackoverflow.com/questions/625919/how-to-ignore-a-file-which-is-already-comitted -dans-le-commit-précédent) –

Répondre

143

Si le fichier est toujours affiché dans l'état, même s'il se trouve dans le .gitignore, assurez-vous qu'il n'est pas déjà suivi.

git rm --cached config.php 

Si vous voulez juste l'ignorer localement, vous pouvez également le rendre ignoré par le statut git:

git update-index --assume-unchanged config.php 
+1

OK merci! Si je fusionne ma branche avec une autre, ce fichier peut-il poser quelques problèmes? – prcaen

+1

@ Nimbus147: cela ne devrait pas poser de problème, et tout changement sur ce fichier sera toujours ignoré (c'est-à-dire non ajouté/validé). – VonC

+4

'suppose-inchangé' fonctionne très bien, merci –

-3

Une fois qu'un fichier est répertorié dans le .gitignore, vous ne pouvez pas le modifier.

Ainsi, vous pouvez supprimer le fichier de la liste dans un commit, valider le suivant, puis rajouter le fichier à la liste des ignorés dans une troisième validation par la suite. Ce que je fais habituellement est de diviser le fichier en deux, un qui est autorisé et je peux changer, qui inclut le deuxième fichier s'il existe, alors les devs peuvent faire des changements de configuration dans le fichier ignoré facultativement.

+1

"_Un fois qu'un fichier est listé dans le .gitignore vous ne pouvez pas le changer_" - pouvez-vous clarifier, que voulez-vous dire? J'ai ** beaucoup de fichiers ** dans beaucoup de mes '. Gitignore's et je change constamment ces fichiers! C'est la première fois, j'entends quelqu'un dire, qu'une fois que j'ajoute un fichier à '.gitignore', je ne peux pas le changer. – trejder

+1

Il a réellement tort. Vous pouvez les changer. Git ne les télécharge pas, ou même vous donne la possibilité de les télécharger. – David

2

Si le fichier est déjà dans le référentiel, et par conséquent l'indice/zone de transit , alors une mise à jour de .gitignore ne changera pas cette situation - Elle continuerait à être engagée.

Pour supprimer le fichier de la zone Index/Staging, utilisez git rm <file>.

Questions connexes