Come posso ignorare i .pyc
file in git?
Se lo metto dentro .gitignore
non funziona. Ho bisogno che non vengano tracciati e non siano controllati i commit.
Come posso ignorare i .pyc
file in git?
Se lo metto dentro .gitignore
non funziona. Ho bisogno che non vengano tracciati e non siano controllati i commit.
Risposte:
Mettilo dentro .gitignore
. Ma dalla gitignore(5)
pagina man:
· If the pattern does not contain a slash /, git treats it as a shell glob pattern and checks for a match against the pathname relative to the location of the .gitignore file (relative to the toplevel of the work tree if not from a .gitignore file). · Otherwise, git treats the pattern as a shell glob suitable for consumption by fnmatch(3) with the FNM_PATHNAME flag: wildcards in the pattern will not match a / in the pathname. For example, "Documentation/*.html" matches "Documentation/git.html" but not "Documentation/ppc/ppc.html" or "tools/perf/Documentation/perf.html".
Quindi, specificare il percorso completo della *.pyc
voce appropriata o inserirla in un .gitignore
file in una qualsiasi delle directory che provengono dalla radice del repository (inclusa).
Dovresti aggiungere una riga con:
*.pyc
al .gitignore
file nella cartella principale dell'albero del repository git subito dopo l'inizializzazione del repository.
Come ha detto ralphtheninja , se ti sei dimenticato di farlo in anticipo, se aggiungi semplicemente la riga al .gitignore
file, tutti i file precedentemente .pyc
salvati verranno comunque tracciati, quindi dovrai rimuoverli dal repository.
Se sei su un sistema Linux (o "genitori e figli" come un MacOSX), puoi farlo rapidamente con solo questo comando di una riga che devi eseguire dalla radice del repository:
find . -name "*.pyc" -exec git rm -f "{}" \;
Questo significa solo:
a partire dalla directory in cui mi trovo attualmente, trova tutti i file il cui nome termina con l'estensione
.pyc
e passa il nome del file al comandogit rm -f
Dopo l' *.pyc
eliminazione dei file da git come file tracciati, salva questa modifica nel repository, quindi puoi finalmente aggiungere la *.pyc
riga al .gitignore
file.
(adattato da http://yuji.wordpress.com/2010/10/29/git-remove-all-pyc/ )
Hai probabilmente li aggiunto al repository prima di mettere *.pyc
in .gitignore
.
Prima rimuovili dal repository.
cerco di usare la frase di un post precedente e non lavoro in modo ricorsivo, quindi leggo un po 'di aiuto e ottengo questa riga:
find . -name "*.pyc" -exec git rm -f "{}" \;
pd è necessario per aggiungere * .pyc nel file .gitignore per mantenere git pulito
echo "*.pyc" >> .gitignore
Godere.
Grazie @Enrico per la risposta.
Nota se stai usando virtualenv avrai molti più .pyc
file all'interno della directory in cui ti trovi attualmente, che saranno catturati dal suo comando find.
Per esempio:
./app.pyc
./lib/python2.7/_weakrefset.pyc
./lib/python2.7/abc.pyc
./lib/python2.7/codecs.pyc
./lib/python2.7/copy_reg.pyc
./lib/python2.7/site-packages/alembic/__init__.pyc
./lib/python2.7/site-packages/alembic/autogenerate/__init__.pyc
./lib/python2.7/site-packages/alembic/autogenerate/api.pyc
Suppongo che sia innocuo rimuovere tutti i file, ma se vuoi solo rimuovere i .pyc
file nella tua directory principale, allora fallo
find "*.pyc" -exec git rm -f "{}" \;
Questo rimuoverà solo il app.pyc
file dal repository git.