2009-03-12 3 views
61

Nel fare:git, non mostrarmi * .pyc nell'elenco dei file non tracciati!

>git status 

mostra una grande lista di file .pyc sotto "i file non ancora". Non voglio che mostri questi, in quanto aggiunge rumore.

In altre parole, come faccio a far sì che git ignori i file .pyc tutto il tempo e per tutti i progetti?

EDIT

Non sto chiedendo un modo per diffondere le mie file ignorati ad altre persone, ho davvero solo dire "per tutti i progetti", nel senso che non voglio configurare ogni nuovo progetto di ignora i file .pyc.

UPDATE

Dovrei aggiungere che sto lavorando su Windows, e la mia Git è msysgit

Patterns che un utente desidera git a ignorare in tutte le situazioni (ad esempio, il backup o temporanea i file generati dall'editor di scelta dell'utente) generalmente entrano in un file specificato da core.excludesfile nel file ~/.gitconfig dell'utente.

È .gitconfig un file o una cartella? Non ho una cosa del genere nella mia home directory (C:\users\<myusername>\)

UPDATE2

Grazie a tutti per le risposte,

ho risolto i problemi utilizzando:

>git config --global core.excludesfile c:\git\ignore_files.txt 

e mettendo * .pyc in c:\git\ignore_files.txt

risposta

38
git config --global core.excludesfile "c:\program files\whatever\global_ignore.txt" 

Quindi, aggiungere

*.foo 

a tale file.

+0

ha funzionato per un progetto, ma non per tutti i progetti – hasen

+1

Oops. Usa "git config --global core.excludesfile ..." per impostarlo nella configurazione globale di Git. Questo dovrebbe funzionare per tutti i progetti. – Bombe

+0

Ottima risposta, ha funzionato per la prima volta. Grazie – dahui

3

Se ricordo, c'è un modo per vedere tup un global .gitignore ... Ma il problema è che non puoi condividerlo con altre persone (cioè, altre persone che estraggono il tuo codice vedranno i file .pyc).

Quindi, IMHO, è meglio aggiungerlo a .gitignore per ogni progetto che si avvia. Mantengo un magazzino .gitignore in giro solo per questa ragione.

< flamebait>
Oppure si potrebbe passare a bzr, che viene fornito con un elenco predefinito sensibile delle cose di ignorare^_^
</flamebait>

+0

'bzr' è scritto in Python. Sarebbe inaspettato se non fosse in grado di gestire bene le cose specifiche di Python. – jfs

+1

È vero. Non conosco l'intera estensione delle impostazioni predefinite, ma so che gestiscono anche file come Vim/Emacs, file di backup, file .o, ecc. –

+0

, si direbbe che sarebbe opportuno che bzr ignorasse i file .DS_Store mac, ma non lo fa, svn does ad I richiamo. Penso che ignori solo i file pyc di default sia scritto in python e probabilmente anche in emacs :) – Vasil

55

Inserire nel file ~/.gitignore:

*.pyc 

Run:

git config --global core.excludesfile ~/.gitignore 

Sono d'accordo con @David Wolever questa opzione dovrebbe essere usata con cautela, se mai.

Il ~/.gitignore ("%HOME%\.gitignore" su Windows) è solo una convenzione è possibile utilizzare qualsiasi nome di file che ti piace, ad esempio, "c:\docs\gitignore.txt".

+0

La migliore risposta. Breve, al punto –

+0

Perché dovrebbe essere usato con cautela? – LazerSharks

+0

@Gnuey: è un'impostazione globale che viene applicata a tutti i repository Git. Usalo solo per i file che vuoi ignorare * "sempre e per tutti i progetti" * – jfs

1

Non potresti aggiungere

* .pyc

al tuo .gitignore?

+1

'.gitignore' per un repository git non funziona per" tutto il tempo e per tutti i progetti ". – jfs

+0

beh io sono sorta newb per git – hasen

84

Come accennato in gitignore, Git ha 3 ignore files:

  • Patterns, che dovrebbe essere la versione controllata e distribuita ad altri repository via clone (cioè, i file che tutti gli sviluppatori vorranno ignorare) dovrebbe andare in un .gitignore file.

(che si prende cura di tutti i tempi : se uno cloni tuo repo, si otterrà il file .gitignore)

  • modelli che sono specifiche per un particolare repository, ma che non devono essere condivisi con altri repository correlati (ad esempio file ausiliari che vivono all'interno del repository ma sono specifici per il flusso di lavoro di un utente) dovrebbero andare nel file $ GIT_DIR/info/exclude.

(non interessanti nel tuo caso)

  • Patterns che un utente desidera git a ignorare in tutte le situazioni (ad esempio, i file temporanei generati dal redattore da parte dell'utente di scegliere backup o) in generale andare in un file specificato da core.excludesfile nel user's ~/.gitconfig.

(si prende cura di tutti i progetti, ma non tutti i tempi dal momento che non viene replicato quando uno dei cloni tuo repo.)

"all time per tutti i progetti" mezzi farebbe per esempio un guscio personalizzato per la creazione di nuovi progetti git, con un Gitignore personalizzata come prima parte del file del primo commit ...

+0

risposta davvero chiara. +1 – Paul

+0

+1: risposta completa. Tranne che dovresti menzionare che 'core.excludesfile' potrebbe essere impostato * per progetto * e impostazioni globali. – jfs

7

Un altro modo per ignorare alcuni modelli di file è: aggiungere * .pyc a .git/info/esclude, questo è un modo molto più pulito.

5

aggiungere

*.pyc 

in.il file gitignore

ed eseguire questo

git config --global core.excludesfile .gitignore 

che ha lavorato per me