usar tag name hacer como commits commands git git-rm

name - git tag stack overflow



Eliminar una carpeta de git tracking (5)

Necesito excluir una carpeta (nombre cargado) del seguimiento. Traté de correr

git rm -r --cached wordpress/wp-content/uploads

y después de eso agregué el camino a .gitignore

/wordpress/wp-content/uploads

pero cuando ejecuté el git status se muestran como eliminados. Si intento confirmar los cambios, los archivos se eliminarán, no solo se eliminarán del seguimiento.

¿Qué estoy haciendo mal?

También he intentado

git update-index --assume-unchanged <file>

pero esto parece deshacer el seguimiento de archivos solamente. Pero necesito eliminar una carpeta completa (incluidas las subcarpetas) del seguimiento.


De la documentación de git:

Otra cosa útil que puede querer hacer es mantener el archivo en su árbol de trabajo, pero eliminarlo de su área de preparación. En otras palabras, es posible que desee mantener el archivo en su disco duro pero que Git no lo siga rastreando. Esto es particularmente útil si olvidó agregar algo a su archivo .gitignore y lo montó accidentalmente, como un archivo de registro grande o un grupo de archivos compilados .a. Para hacer esto, usa la opción --cached:

$ git rm --cached readme.txt

Así que tal vez no incluya la "-r"?


Esto funciona para mí:

git rm -r --cached --ignore-unmatch folder_name

--ignore-unmatch es importante aquí, sin esa opción git saldrá con un error en el primer archivo que no esté en el índice.


Me encontré con esta pregunta mientras buscaba en Google "git remove folder from tracking". La pregunta del OP me lleva a la respuesta. Lo estoy resumiendo aquí para las generaciones futuras.

Pregunta

¿Cómo elimino una carpeta de mi repositorio git sin eliminarla de mi máquina local (es decir, el entorno de desarrollo)?

Responder

Paso 1. Agrega la ruta de la carpeta al archivo .gitignore raíz de tu repo.

path_to_your_folder/

Paso 2. Elimina la carpeta de tu git local de seguimiento, pero guárdala en tu disco.

git rm -r --cached path_to_your_folder/

Paso 3. Empuje sus cambios a su repositorio git.

La carpeta se considerará "eliminada" desde el punto de vista de Git (es decir, se encuentra en el historial, pero no en la última confirmación, y la gente que saque de este repositorio obtendrá los archivos eliminados de sus árboles), pero permanecerá en su directorio de trabajo porque has usado --cached .



Paso 2.5: Confirma tus cambios:

>git commit

¡Si presionas sin hacer esto primero no hace nada!