.gitignore debería funcionar. ¿Puede proporcionar una copia de las líneas que ha introducido en .gitignore para intentar solucionar este problema?
Al Riddoch
Respuestas:
41
Ponlo .gitignore. Pero de la gitignore(5)página del 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".
Por lo tanto, especifique la ruta completa a la *.pycentrada adecuada o colóquela en un .gitignorearchivo en cualquiera de los directorios que van desde la raíz del repositorio (inclusive).
Solo para evitar que nadie más se confunda, la interpretación de Ignacio de la página de manual es incorrecta. No es necesario poner el * .pyc en el mismo directorio, basta con ponerlo en un directorio principal (o abuelo, etc.).
Godsmith
@Godsmith: Corregido.
Ignacio Vazquez-Abrams
241
Deberías agregar una línea con:
*.pyc
al .gitignorearchivo en la carpeta raíz de su árbol de repositorio git justo después de la inicialización del repositorio.
Como dijo ralphtheninja , si olvidó hacerlo de antemano, si simplemente agrega la línea al .gitignorearchivo, todos los .pycarchivos previamente comprometidos se seguirán rastreando, por lo que deberá eliminarlos del repositorio.
Si está en un sistema Linux (o "padres e hijos" como MacOSX), puede hacerlo rápidamente con solo este comando de una línea que debe ejecutar desde la raíz del repositorio:
find .-name "*.pyc"-exec git rm -f "{}" \;
Esto solo significa:
comenzando desde el directorio en el que estoy actualmente, busque todos los archivos cuyo nombre termine con extensión .pycy pase el nombre del archivo al comandogit rm -f
Después de la *.pyceliminación de archivos de git como archivos rastreados, confirme este cambio en el repositorio y, finalmente, podrá agregar la *.pyclínea al .gitignorearchivo.
Alternativamente, solo para eliminar los archivos de git y de su máquina local, puede hacerlo git rm --cached *.pycdesde el directorio de nivel superior. Lo tengo desde aquí
Anupam
Tengo que existir, pero una vez que confirma los archivos .pyc, git lo rastrea de todos modos, primero debe eliminarlos y confirmarlos en caso de que los tenga en el repositorio
Mahmoud Hboubati
84
Es probable que los haya añadido al repositorio antes de poner *.pycen .gitignore.
Primero elimínelos del repositorio.
Tenga en cuenta que si está utilizando virtualenv, tendrá varios .pycarchivos más dentro del directorio en el que se encuentra actualmente, que serán capturados por su comando de búsqueda.
Respuestas:
Ponlo
.gitignore
. Pero de lagitignore(5)
página del manual:Por lo tanto, especifique la ruta completa a la
*.pyc
entrada adecuada o colóquela en un.gitignore
archivo en cualquiera de los directorios que van desde la raíz del repositorio (inclusive).fuente
Deberías agregar una línea con:
al
.gitignore
archivo en la carpeta raíz de su árbol de repositorio git justo después de la inicialización del repositorio.Como dijo ralphtheninja , si olvidó hacerlo de antemano, si simplemente agrega la línea al
.gitignore
archivo, todos los.pyc
archivos previamente comprometidos se seguirán rastreando, por lo que deberá eliminarlos del repositorio.Si está en un sistema Linux (o "padres e hijos" como MacOSX), puede hacerlo rápidamente con solo este comando de una línea que debe ejecutar desde la raíz del repositorio:
Esto solo significa:
Después de la
*.pyc
eliminación de archivos de git como archivos rastreados, confirme este cambio en el repositorio y, finalmente, podrá agregar la*.pyc
línea al.gitignore
archivo.(adaptado de http://yuji.wordpress.com/2010/10/29/git-remove-all-pyc/ )
fuente
git rm --cached *.pyc
desde el directorio de nivel superior. Lo tengo desde aquíEs probable que los haya añadido al repositorio antes de poner
*.pyc
en.gitignore
.Primero elimínelos del repositorio.
fuente
Intento usar la oración de una publicación anterior y no trabajo de forma recursiva, luego leo algo de ayuda y obtengo esta línea:
pd es necesario agregar * .pyc en el archivo .gitignore para mantener git limpio
Disfrutar.
fuente
Gracias @Enrico por la respuesta.
Tenga en cuenta que si está utilizando virtualenv, tendrá varios
.pyc
archivos más dentro del directorio en el que se encuentra actualmente, que serán capturados por su comando de búsqueda.Por ejemplo:
Supongo que es inofensivo eliminar todos los archivos, pero si solo desea eliminar los
.pyc
archivos de su directorio principal, hágalofind "*.pyc" -exec git rm -f "{}" \;
Esto eliminará solo el
app.pyc
archivo del repositorio de git.fuente