.gitignore deve funcionar. Você pode fornecer uma cópia das linhas que colocou em .gitignore para tentar resolver este problema?
Al Riddoch,
Respostas:
41
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 ifnotfrom 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).
Apenas para evitar que mais alguém se confunda, a interpretação de Ignacio da página do manual está errada. Não é necessário colocar o * .pyc no mesmo diretório, basta colocá-lo em um diretório pai (ou avô, etc).
Godsmith
@Godsmith: corrigido.
Ignacio Vazquez-Abrams
241
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.
Alternativamente, apenas para remover os arquivos do git e de sua máquina local, você pode fazer a git rm --cached *.pycpartir do diretório de nível superior. Compreendi daqui
Anupam
Eu sei que ele existe, mas depois que você confirma os arquivos .pyc, eles são rastreados pelo git de qualquer maneira, você deve excluí-los primeiro e confirmá-los caso os tenha no repositório
Mahmoud Hboubati
84
Você provavelmente já adicionou-los para o repositório antes de colocar *.pycno .gitignore.
Primeiro remova-os do repositório.
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.
Respostas:
Coloque
.gitignore
. Mas nagitignore(5)
página do manual:Portanto, especifique o caminho completo para a
*.pyc
entrada apropriada ou coloque-o em um.gitignore
arquivo em qualquer um dos diretórios que conduzem da raiz do repositório (inclusive).fonte
Você deve adicionar uma linha com:
para o
.gitignore
arquivo 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
.gitignore
arquivo, todos os.pyc
arquivos 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:
Isso significa apenas:
Após a
*.pyc
exclusão dos arquivos do git como arquivos rastreados, envie essa alteração para o repositório e, então, você pode finalmente adicionar a*.pyc
linha ao.gitignore
arquivo.(adaptado de http://yuji.wordpress.com/2010/10/29/git-remove-all-pyc/ )
fonte
git rm --cached *.pyc
partir do diretório de nível superior. Compreendi daquiVocê provavelmente já adicionou-los para o repositório antes de colocar
*.pyc
no.gitignore
.Primeiro remova-os do repositório.
fonte
Eu tento usar a frase de um post anterior e não trabalho recursivamente, então leio alguma ajuda e obtenho esta linha:
pd é necessário adicionar * .pyc no arquivo .gitignore para manter o git limpo
Aproveitar.
fonte
Obrigado @Enrico pela resposta.
Observe que, se estiver usando o virtualenv, você terá vários outros
.pyc
arquivos no diretório em que está atualmente, que serão capturados pelo comando find.Por exemplo:
Suponho que seja inofensivo remover todos os arquivos, mas se você só deseja remover os
.pyc
arquivos do seu diretório principal, basta fazerfind "*.pyc" -exec git rm -f "{}" \;
Isso removerá apenas o
app.pyc
arquivo do repositório git.fonte