working usar subfolders not node_modules como comando and git

usar - gitignore not working



Aplique las reglas de git.gitignore a un repositorio existente (6)

Esta es una forma de "desarticular" cualquier archivo que de otra manera se ignoraría bajo el conjunto actual de patrones de exclusión:

(GIT_INDEX_FILE=some-non-existent-file / git ls-files --exclude-standard --others --directory --ignored -z) | xargs -0 git rm --cached -r --ignore-unmatch --

Esto deja los archivos en su directorio de trabajo pero los elimina del índice.

El truco utilizado aquí es proporcionar un archivo de índice no existente a git ls-files para que piense que no hay archivos rastreados. El código de shell anterior solicita todos los archivos que se ignorarían si el índice estuviera vacío y luego los elimina del índice real con git rm .

Después de que los archivos hayan sido "sin seguimiento", use el estado de git para verificar que no se eliminó nada importante (si es así, ajuste sus patrones de exclusión y use git reset -- path para restaurar la entrada de índice eliminada). Luego haz un nuevo commit que deje fuera la "crud".

El "crud" todavía estará en cualquier antiguo compromiso. Puede usar git filter-branch para producir versiones limpias de las confirmaciones anteriores si realmente necesita un historial limpio (nb utilizando git filter-branch se "reescribirá el historial", por lo que no debe realizarse a la ligera si tiene colaboradores que hayan realizado cualquiera de sus compromisos históricos después de que se introdujo por primera vez la "crud").

Esta pregunta ya tiene una respuesta aquí:

Comencé a usar git con un proyecto xcode y recientemente descubrí que puedo usar los archivos .gitignore y .gitattributes para ignorar el ruido del compilador y del sistema. Ahora que tengo los archivos .gitignore y .gitattributes en su lugar, ¿cómo puedo "aplicar" las nuevas reglas de ignorar y eliminar el problema del control de versiones?

Mi archivo .gitignore es:

# xcode noise *.modelv3 *.pbxuser *.perspective *.perspectivev3 *.pyc *~.nib/ build/* # Textmate - if you build your xcode projects with it *.tm_build_errors # old skool .svn # osx noise .DS_Store profile

Y mi archivo .gitattributes es:

*.pbxproj -crlf -diff -merge

¡Gracias!


No deberías tener que ''aplicar'' los cambios. simplemente coloque el archivo .gitignore en su directorio de inicio (si desea que sea global) o en la raíz de su proyecto (si desea que sea único solo para ese proyecto).

Editar: Se me ocurre que podría tener este problema porque ya ha agregado los archivos que no desea rastrear. Esto es lo que la página de manual de gitignore tiene que decir al respecto:

Tenga en cuenta que todos los archivos gitignore solo se refieren a archivos que git todavía no ha rastreado; para ignorar los cambios no confirmados en archivos ya rastreados, consulte la documentación de git update-index --assume-sin cambios.


Si desea eliminar los archivos completamente, aquí hay una referencia útil de Github .

Se advierte que:

  1. Esto volverá a escribir su historial, por lo que probablemente solo valga la pena hacerlo antes de publicar su repositorio.
  2. Recuerde que los shas antiguos todavía estarán en la base de datos de objetos, pero la guía a la que he vinculado le mostrará cómo tratarlos también.

Si ya está rastreando archivos que desea ignorar, debe eliminarlos con

git rm --cached <file>

Git no ignorará los archivos que ya se rastrearon (es decir, los agregó con git add).


use git rm --cached para archivos y git rm -r --cached para el directorio build/


mv the_file_i_want_to_ignore the_file_i_want_to_ignore.back

git rm the_file_i_want_to_ignore

mv the_file_i_want_to_ignore.back the_file_i_want_to_ignore

git status

git commit -m ''ignore a bunch of stuff i should have ignored before''

esto es un poco de un flujo de trabajo manual, pero es cómo lo he hecho en el pasado.