repositorio eliminar directorios como carpeta borrar archivos archivo algo git repository remote-server delete-file git-rm

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:

  1. Editar archivo .gitignore .

    ECHO mylogfile.log >> .gitignore

  2. Eliminar todos los elementos del índice.

    git rm -r -f --cached .

  3. Índice de reconstrucción.

    git add .

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