Come posso ignorare i .pycfile in git?
Se lo metto dentro .gitignorenon funziona. Ho bisogno che non vengano tracciati e non siano controllati i commit.
Come posso ignorare i .pycfile in git?
Se lo metto dentro .gitignorenon 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 *.pycvoce appropriata o inserirla in un .gitignorefile in una qualsiasi delle directory che provengono dalla radice del repository (inclusa).
Dovresti aggiungere una riga con:
*.pyc
al .gitignorefile 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 .gitignorefile, tutti i file precedentemente .pycsalvati 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
.pyce passa il nome del file al comandogit rm -f
Dopo l' *.pyceliminazione dei file da git come file tracciati, salva questa modifica nel repository, quindi puoi finalmente aggiungere la *.pycriga al .gitignorefile.
(adattato da http://yuji.wordpress.com/2010/10/29/git-remove-all-pyc/ )
Hai probabilmente li aggiunto al repository prima di mettere *.pycin .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ù .pycfile 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 .pycfile nella tua directory principale, allora fallo
find "*.pyc" -exec git rm -f "{}" \;
Questo rimuoverà solo il app.pycfile dal repository git.