1843 votos

¿Cómo puedo borrar un archivo del repositorio git?

He añadido un archivo denominado "file1.txt" a git repo. Después de que cometí, agregó unos directorios llamados dir1 y dir2 y les compromete a git repo.
Ahora tiene el repositorio actual "file1.txt" , dir1 y dir2 . ¿Cómo puedo eliminar "file1.txt" sin afectar a otros como dir1 y dir2 .

3048voto

Greg Hewgill Puntos 356191

Use git rm:

git rm file1.txt
git commit -m "remove file1.txt"

598voto

Chris K Puntos 3940

git rm file.txt elimina el archivo de la repo pero también borra del sistema de archivos local.

Para quitar el archivo de la repo y no borrar del sistema de archivos local de uso:
git rm --cached file.txt

La siguiente situación exacta es donde puedo usar git para mantener un control de versiones para mi negocio del sitio web, pero el "mickey" directorio de una carpeta tmp para compartir contenido privado con un CAD desarrolladores. Cuando necesitaba archivos de GRAN tamaño, hice un privado, desvinculado directorio y ftpd los archivos allí para él a buscar a través del navegador. Olvidando que yo hice esto, yo más tarde se realizó un git add -A desde el sitio web del directorio de base. Posteriormente, git status mostró los nuevos archivos de la necesidad de comprometerse. Ahora me necesarias para eliminarlos de git de seguimiento y control de la versión...

Salida de ejemplo de abajo es de lo que acaba de ocurrir a mí, donde he eliminado accidentalmente la .003 archivo. Afortunadamente, no me importa lo que le pasó a la copia local para .003, pero algunos de los otros en la actualidad ha cambiado los archivos se actualiza acabo de hacer para el sitio web y sería épico que han sido borrados en el sistema de archivos local! "Sistema de archivos Local" = el sitio en vivo (no es una gran práctica, pero es la realidad).

[~/www]$ git rm shop/mickey/mtt_flange_SCN.7z.003
error: 'shop/mickey/mtt_flange_SCN.7z.003' has local modifications
(use --cached to keep the file, or -f to force removal)
[~/www]$ git rm -f shop/mickey/mtt_flange_SCN.7z.003
rm 'shop/mickey/mtt_flange_SCN.7z.003'
[~/www]$ 
[~/www]$ git status
# On branch master
# Changes to be committed:
#   (use "git reset HEAD <file>..." to unstage)
#
#   deleted:    shop/mickey/mtt_flange_SCN.7z.003
#
# Changed but not updated:
#   (use "git add <file>..." to update what will be committed)
#   (use "git checkout -- <file>..." to discard changes in working directory)
#
#   modified:   shop/mickey/mtt_flange_SCN.7z.001
#   modified:   shop/mickey/mtt_flange_SCN.7z.002
[~/www]$ ls shop/mickey/mtt_flange_S*
shop/mickey/mtt_flange_SCN.7z.001  shop/mickey/mtt_flange_SCN.7z.002
[~/www]$ 
[~/www]$ 
[~/www]$ git rm --cached shop/mickey/mtt_flange_SCN.7z.002
rm 'shop/mickey/mtt_flange_SCN.7z.002'
[~/www]$ ls shop/mickey/mtt_flange_S*
shop/mickey/mtt_flange_SCN.7z.001  shop/mickey/mtt_flange_SCN.7z.002
[~/www]$ 
[~/www]$ 
[~/www]$ git status
# On branch master
# Changes to be committed:
#   (use "git reset HEAD <file>..." to unstage)
#
#   deleted:    shop/mickey/mtt_flange_SCN.7z.002
#   deleted:    shop/mickey/mtt_flange_SCN.7z.003
#
# Changed but not updated:
#   modified:   shop/mickey/mtt_flange_SCN.7z.001
[~/www]$

Actualización: Esta respuesta es conseguir algo de tráfico, así que he pensado que me gustaría mencionar a mi otro Git respuesta comparte un par de grandes recursos: Esta página tiene un gráfico que ayuda a desmitificar Git para mí. El "Pro Git" libro está online y me ayuda mucho.

72voto

VonC Puntos 414372

Si el archivo ya está en GitHub, ahora (julio de 2013) puede directamente eliminarlo de la GUI de web!

Basta con ver cualquier archivo en el repositorio, haga clic en el botón eliminar situado en la parte superior, y se comprometen a la eliminación como cualquier otro web basado en editar.

delete button

(la confirmación se va a reflejar la eliminación del archivo):

commit a deletion

Y al igual que ya se ha ido.

Para ayudar con estas características, asegúrese de leer nuestros artículos de ayuda en crear, mover, renombrary eliminar archivos.

Nota: debido a que es un sistema de control de versiones Git siempre tiene tu espalda si usted necesita recuperar el archivo más tarde.

La última frase significa que el archivo borrado aún es parte de la historia, y usted puede restaurar fácilmente suficiente (pero no así a través de la GitHub interfaz web):

Consulte "Restauración de un archivo eliminado en un repositorio Git".

24voto

James Polley Puntos 4258

Más generalmente, git help le ayudará con por lo menos sencillas preguntas como esta:

zhasper@berens:/media/Kindle/documents$ git help
usage: git [--version] [--exec-path[=GIT_EXEC_PATH]] [--html-path] [-p|--paginate|--no-pager] [--bare] [--git-dir=GIT_DIR] [--work-tree=GIT_WORK_TREE] [--help] COMMAND [ARGS]

The most commonly used git commands are:
   add        Add file contents to the index
   :
   rm         Remove files from the working tree and from the index

5voto

jushusted Puntos 39

Si usted tiene la aplicación de GitHub para Windows, puede eliminar un archivo en 5 pasos sencillos:

  • Haga clic en sincronizar.
  • Haga clic en el directorio donde se encuentra el archivo y seleccione la versión más reciente del archivo.
  • Haga clic en herramientas y seleccione "Abrir un shell aquí".
  • En la cáscara, escriba: "rm {filename}" y pulse Intro.
  • Cometer el cambio y la resincronización.

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