2014-09-18 2 views
8

Sto usando Git in Android Studio su una macchina OS X, e mi piacerebbe avere un file personale .gitignore che sovrascriva lo .gitignore che si trova nel progetto (voglio che ignori i file .iml). Questo può essere fatto e come?Posso aggiungere un file .gitignore solo per me che sovrascrive il progetto .gitignore?

Ho cercato di creare un file .gitignore nella mia home directory con le seguenti linee in:

# Android Studio 
.*.iml 
*.iml

E l'ho usato questo comando per rendere git usare il mio file git config --global core.excludesfile ~/.gitignore, ma non funziona.

Qualche idea?

+0

AFAIK, non è possibile sovrascrivere il file '.gitignore' (se presente) che si trova nella directory principale del repository, poiché ha la precedenza su tutto il resto, incl. qualsiasi "nucleo esclude file". – Jubobs

+0

Correlati: [È possibile avere più file .gitignore all'interno di un singolo repository?] (Http://stackoverflow.com/questions/9730486/can-you-have-multiple-gitignore-files-within-a-single-repo) –

+0

No, non ha funzionato, non riesco a far sì che ignori i file .iml :( – Neigaard

risposta

9

Invece di creare un nuovo file .gitignore, è should use il file .git/info/exclude per impostare le regole di ignoranza specifiche per il clone del repository.

Quindi, in sostanza, vai al tuo radice del progetto, ed eseguire

cd $PROJECT_ROOT 
echo "*.iml" >> .git/info/exclude 

Si noti che il modello *.iml si prenderà cura di file di tipo .*.iml pure, in modo da poter fare con un ignorano regola.

Inoltre, questo completa le regole di ignoranza esistenti in .gitignore e le regole di ignoranza di .gitignore verranno comunque applicate.


Sembra che si sta già monitorando i file .iml nella repo Git, in modo da poter provare a rimuovere loro di Git utilizzando

git rm -r *.iml 
git commit -m "removed *.iml" 

Si noti che questo li untrack dal repository master che una volta fai una spinta.

In caso contrario, è possibile utilizzare git update-index --assume-unchanged <filename> per ignorare le modifiche a tali file localmente. E dopo, le regole del gitignore dovrebbero funzionare bene.

+0

Può essere usato per sovrascrivere una regola '.gitignore' (es: sovrascrivere' * .jar' usando '! *. jar' in' .git/info/exclude') –