tipos - Git: excluye un archivo con git limpio
tipos de etiquetas en git (5)
Por favor, intente eso con una x
pequeña en lugar de la capital. Me gusta - git clean -x
git clean -x -n -e local_settings.py # Shows what would remove (-n flag)
git clean -x -f -e local_settings.py # Removes it (note the -f flag)
-x Don''t use the standard ignore rules read from .gitignore (per directory) and $GIT_DIR/info/exclude, but do still use the ignore rules given with -e options. This allows removing all untracked files, including build products. This can be used (possibly in conjunction with git reset) to create a pristine working directory to test a clean build. -X Remove only files ignored by git. This may be useful to rebuild everything from scratch, but keep manually created files.
Estoy trabajando en un gran proyecto de Python, y estoy muy enfermo si los archivos .pyc y * ~. Me gustaría quitarlos. He visto que el indicador -X
de git clean eliminaría los archivos sin seguimiento. Como puedes imaginar, no estoy rastreando .pyc
ni *~
. Y eso haría el truco. El problema es que tengo un archivo local_settings.py
que me gustaría mantener después del git limpio.
Entonces, esto es lo que tengo.
.gitignore:
*.pyc
*~
local_settings.py
Cuando ejecuto este comando:
git clean -X -n -e local_settings.py
Me sale esta lista de resultados:
Quitaría local_settings.py
Quitaría requisitos.txt ~
Quitaría (otro grupo de) ~ archivos
Quitaría (otro grupo de) archivos pyc
No quiero eliminar el archivo local_settings.py He intentado muchas formas de hacerlo, pero no puedo averiguar cómo lograrlo.
git clean -X -n -e local_settings.py
git clean -X -n -e "local_settings.py"
git clean -X -n --exclude=local_settings.py
git clean -X -n --exclude="local_settings.py"
Y nada parece funcionar.
EDITAR:
Para la posteridad, la forma correcta de hacerlo es (Gracias @Rifat):
git clean -x -n -e local_settings.py # Shows what would remove (-n flag)
git clean -x -f -e local_settings.py # Removes it (note the -f flag)
Puse los archivos locales que entran en esta categoría en .git / info / exclude (por ejemplo, mis archivos de proyecto IDE). Ellos pueden hacer una limpieza como esta:
git ls-files --others --exclude-from=.git/info/exclude -z | /
xargs -0 --no-run-if-empty rm --verbose
Dónde:
- --otros: muestra archivos sin seguimiento
- --exclude-from: proporciona un archivo de estilo git ignorar estándar para excluir de la lista
- -z / -0: usa / 0 en lugar de / n para dividir nombres
- --no-run-if-empty: no ejecute rm si la lista está vacía
Podría crear un alias, por ejemplo:
git config --global alias.myclean ''!git ls-files --others --exclude-from=.git/info/exclude -z | xargs -0 --no-run-if-empty rm --verbose --interactive''
El --interactivo significa que tienes que hacer git myclean -f para forzar la eliminación.
Referencia: http://git-scm.com/docs/git-ls-files (más la primera línea del valor predeterminado .git / info / exclude)
Si está ejecutando Python 2.6+, simplemente configure la variable de entorno, PYTHONDONTWRITEBYTECODE
, en true
. Puede simplemente agregar lo siguiente a algo como .profile
o .bashrc
para deshabilitarlo completamente para su perfil:
export PYTHONDONTWRITEBYTECODE=true
O, si solo quieres hacer eso para un proyecto en particular en el que estás trabajando, tendrás que ejecutar lo anterior en tu shell cada vez (o en uno de tus scripts de inicio de virtualenv si estás usando virtualenv y virtualenvwrapper), o simplemente puede pasar el parámetro -B
cuando llama a python
, por ejemplo
python -B manage.py runserver
Si ya ha comprometido los pyc y así sucesivamente, haga lo siguiente:
Agregue * .pyc, * ~ y local_settings.py a .gitignore. Entonces hazlo en tu repositorio git:
find . -name ''*.pyc'' | xargs rm
find . -name ''*~'' | xargs rm
entonces hazlo:
git commit -am "get rif of them"
Ahora ya no deberían molestarte.
git clean -X -n --exclude="!local_settings.py"
trabajos. Descubrí esto cuando busqué en Google y obtuve esta página .