Eliminar un archivo de un repositorio Git sin eliminarlo del sistema de archivos local
Quiero eliminar un archivo de mi repositorio.
git rm file_to_remove.txt
eliminará el archivo del repositorio, pero también eliminará el archivo del sistema de archivos local. ¿Cómo elimino este archivo del repositorio sin eliminar mi copia local del archivo?
La git rm
documentación dice:
Cuando
--cached
se proporciona, el contenido preparado debe coincidir con la punta de la rama o el archivo en el disco, lo que permite eliminar el archivo solo del índice.
Entonces, para un solo archivo:
git rm --cached file_to_remove.txt
y para un solo directorio:
git rm --cached -r directory_to_remove
Para eliminar una carpeta completa del repositorio (como archivos Resharper), haga esto:
git rm -r --cached folderName
Había comprometido algunos archivos de resharper y no quería que persistieran para otros usuarios del proyecto.
Para eliminar archivos del repositorio basado en .gitignore
, sin eliminarlos del sistema de archivos local:
git rm --cached `git ls-files -i -c -X .gitignore`
Para WindowsPowershell:
git rm --cached $(git ls-files -i -c -X .gitignore)
Según mi respuesta aquí: https://stackoverflow.com/questions/6313126/how-to-remove-a-directory-in-my-github-repository
Para eliminar una carpeta/directorio o archivo solo del repositorio git y no del local, intente 3 sencillos pasos.
Pasos para eliminar el directorio
git rm -r --cached File-or-FolderName
git commit -m "Removed folder from repository"
git push origin master
Pasos para ignorar esa carpeta en las próximas confirmaciones
Para ignorar esa carpeta en las próximas confirmaciones, cree un archivo en la raíz llamado .gitignore y coloque el nombre de esa carpeta en él. Puedes poner tantos como quieras.
El archivo .gitignore se verá así
/FolderName