directorios - eliminar repositorio git local
Eliminar un archivo de un repositorio Git sin eliminarlo del sistema de archivos local (9)
Git le permite ignorar esos archivos asumiendo que no han cambiado. Esto se hace ejecutando el
git update-index --assume-unchanged path/to/file.txt
. Una vez que se marca un archivo como tal, git ignorará completamente cualquier cambio en ese archivo; no se mostrarán cuando se ejecute git status o git diff, ni se confirmarán.
(Desde https://help.github.com/articles/ignoring-files )
Por lo tanto, no eliminarlo, sino ignorar los cambios para siempre. Creo que esto solo funciona localmente, por lo que los compañeros de trabajo aún pueden ver los cambios a menos que ejecuten el mismo comando que el anterior. (Todavía tengo que verificar esto sin embargo.)
Nota: Esto no es responder la pregunta directamente, sino que se basa en preguntas de seguimiento en los comentarios de las otras respuestas.
Mi confirmación inicial contenía algunos archivos de registro. He agregado *log
a mi .gitignore
, y ahora quiero eliminar los archivos de registro de mi repositorio.
git rm mylogfile.log
eliminará un archivo del repositorio, pero también lo eliminará del sistema de archivos local.
¿Cómo puedo eliminar este archivo del repositorio sin eliminar mi copia local del archivo?
Además, si ha comprometido datos confidenciales (por ejemplo, un archivo que contiene contraseñas), debe eliminarlo por completo del historial del repositorio. Aquí hay una guía que explica cómo hacerlo: http://help.github.com/remove-sensitive-data/
Las respuestas anteriores no funcionaron para mí. Usé el filtro-rama para eliminar todos los archivos confirmados
eliminar un archivo de un repositorio git con:
git filter-branch --tree-filter ''rm file''
eliminar una carpeta de un repositorio git con:
git filter-branch --tree-filter ''rm -rf directory''
Esto elimina el directorio o archivo de todas las confirmaciones.
puede especificar un compromiso usando:
git filter-branch --tree-filter ''rm -rf directory'' HEAD
O un rango
git filter-branch --tree-filter ''rm -rf vendor/gems'' t49dse..HEAD
Para empujar todo a control remoto, puedes hacer:
git push origin master --force
Para eliminar una carpeta completa del repositorio (como los archivos Resharper), haga lo siguiente:
git rm -r --cached folderName
Había cometido algunos archivos resharper y no quería que persistieran para otros usuarios del proyecto.
Para un solo archivo:
git rm --cached mylogfile.log
Para directorio único:
git rm --cached -r mydirectory
Según mi respuesta aquí: https://.com/questions/6313126/how-to-remove-a-directory-in-my-github-repository
Para eliminar una carpeta / directorio o archivo solo desde el repositorio git y no desde el local, intente 3 pasos simples.
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 siguientes confirmaciones.
Para ignorar esa carpeta de las siguientes confirmaciones, cree un archivo en la raíz llamado .gitignore y ponga ese nombre de carpeta en ella. Puedes poner tantas como quieras
El archivo .gitignore se verá así
/FolderName
También puede eliminar archivos del repositorio en función de su .gitignore sin eliminarlos del sistema de archivos local:
git rm --cached `git ls-files -i -X .gitignore`
O, alternativamente, en Windows Powershell:
git rm --cached $(git ls-files -i -X .gitignore)
Una solución más genérica:
Editar archivo
.gitignore
.ECHO mylogfile.log >> .gitignore
Eliminar todos los elementos del índice.
git rm -r -f --cached .
Índice de reconstrucción.
git add .
Hacer nuevo commit
git commit -m "Removed mylogfile.log"
Si solo quiere desmarcar un archivo y no borrarlo del repositorio local y remoto, use este comando:
git update-index --assume-unchanged file_name_with_path