Como posso ignorar .pycarquivos no git?
Se eu colocar, .gitignorenão funciona. Eu preciso que eles não sejam rastreados e não sejam verificados quanto a commits.
Como posso ignorar .pycarquivos no git?
Se eu colocar, .gitignorenão funciona. Eu preciso que eles não sejam rastreados e não sejam verificados quanto a commits.
Respostas:
Coloque .gitignore. Mas na gitignore(5)página do manual:
· 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".
Portanto, especifique o caminho completo para a *.pycentrada apropriada ou coloque-o em um .gitignorearquivo em qualquer um dos diretórios que conduzem da raiz do repositório (inclusive).
Você deve adicionar uma linha com:
*.pyc
para o .gitignorearquivo na pasta raiz de sua árvore de repositório git logo após a inicialização do repositório.
Como disse o ralphtheninja , se você esqueceu de fazer isso antes, se você apenas adicionar a linha ao .gitignorearquivo, todos os .pycarquivos previamente confirmados ainda serão rastreados, então você precisará removê-los do repositório.
Se você estiver em um sistema Linux (ou "pais e filhos" como um MacOSX), você pode fazer isso rapidamente com apenas este comando de uma linha que você precisa executar a partir da raiz do repositório:
find . -name "*.pyc" -exec git rm -f "{}" \;
Isso significa apenas:
começando do diretório em que estou atualmente, encontre todos os arquivos cujo nome termina com extensão
.pyce passe o nome do arquivo para o comandogit rm -f
Após a *.pycexclusão dos arquivos do git como arquivos rastreados, envie essa alteração para o repositório e, então, você pode finalmente adicionar a *.pyclinha ao .gitignorearquivo.
(adaptado de http://yuji.wordpress.com/2010/10/29/git-remove-all-pyc/ )
Você provavelmente já adicionou-los para o repositório antes de colocar *.pycno .gitignore.
Primeiro remova-os do repositório.
Eu tento usar a frase de um post anterior e não trabalho recursivamente, então leio alguma ajuda e obtenho esta linha:
find . -name "*.pyc" -exec git rm -f "{}" \;
pd é necessário adicionar * .pyc no arquivo .gitignore para manter o git limpo
echo "*.pyc" >> .gitignore
Aproveitar.
Obrigado @Enrico pela resposta.
Observe que, se estiver usando o virtualenv, você terá vários outros .pycarquivos no diretório em que está atualmente, que serão capturados pelo comando find.
Por exemplo:
./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
Suponho que seja inofensivo remover todos os arquivos, mas se você só deseja remover os .pycarquivos do seu diretório principal, basta fazer
find "*.pyc" -exec git rm -f "{}" \;
Isso removerá apenas o app.pycarquivo do repositório git.