2566 votos

Eliminar un archivo de un repositorio de Git sin eliminarlo del sistema de ficheros local

Mi inicial cometer contenido de algunos archivos de registro. He añadido *log mi .gitignore, y ahora me quieren quitar los archivos de registro desde mi repositorio.

git rm mylogfile.log

se elimina un archivo desde el repositorio, pero también eliminará desde el sistema de archivos local.

¿Cómo puedo eliminar este archivo de la repo sin borrar mi copia de el archivo?

3671voto

bdonlan Puntos 90068
git rm --cached mylogfile.log

255voto

Sam Tyson Puntos 2322

Para eliminar una carpeta entera de la repo (como Resharper archivos), haga lo siguiente:

git rm -r --cached folderName

Yo había cometido algunos resharper archivos, y no quieren que aquellos que persisten para otros usuarios del proyecto.

176voto

Techbrunch Puntos 278

También puede eliminar los archivos desde el repositorio basado en su .gitignore sin eliminarlas del sistema de archivos local :

git rm --cached `git ls-files -i -X .gitignore`

66voto

BoD Puntos 3490

También, si usted tiene comprometidos los datos sensibles (p. ej. un archivo que contiene las contraseñas), debe borrar de la historia del repositorio. He aquí una guía que explica cómo hacerlo: http://help.github.com/remove-sensitive-data/

56voto

mAsT3RpEE Puntos 449

Una solución más genérica:

  1. Editar .gitignore archivo.

    ECHO mylogfile.log >> .gitignore

  2. Quitar todos los elementos de índice.

    git rm -r -f --cached .

  3. Índice de reconstrucción.

    git add .

  4. Hacer de nuevo commit

    git commit -m "Removed mylogfile.log"

Iteramos.com

Iteramos es una comunidad de desarrolladores que busca expandir el conocimiento de la programación mas allá del inglés.
Tenemos una gran cantidad de contenido, y también puedes hacer tus propias preguntas o resolver las de los demás.

Powered by:

X