ver tipos tag modificados log etiquetas ejemplo crear cambios archivos archivo git version-control git-clean

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)

De la documentación de git :

-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 .