¿Cómo puedo ignorar .pycarchivos en git?
Si lo pongo .gitignoreno funciona. Necesito que no se les rastree y que no se revisen para confirmaciones.
¿Cómo puedo ignorar .pycarchivos en git?
Si lo pongo .gitignoreno funciona. Necesito que no se les rastree y que no se revisen para confirmaciones.
Respuestas:
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 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".
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).
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.
(adaptado de http://yuji.wordpress.com/2010/10/29/git-remove-all-pyc/ )
Es probable que los haya añadido al repositorio antes de poner *.pycen .gitignore.
Primero elimínelos del repositorio.
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:
find . -name "*.pyc" -exec git rm -f "{}" \;
pd es necesario agregar * .pyc en el archivo .gitignore para mantener git limpio
echo "*.pyc" >> .gitignore
Disfrutar.
Gracias @Enrico por la respuesta.
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.
Por ejemplo:
./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
Supongo que es inofensivo eliminar todos los archivos, pero si solo desea eliminar los .pycarchivos de su directorio principal, hágalo
find "*.pyc" -exec git rm -f "{}" \;
Esto eliminará solo el app.pycarchivo del repositorio de git.