2010-08-12 12 views
258

Tengo una carpeta que me gustaría eliminar en mi repositorio remoto. Me gustaría eliminarlo, pero mantener la carpeta en mi equipoEliminar el archivo del repositorio pero mantenerlo localmente

+3

posible duplicado de [Git: eliminar un archivo del repositorio sin eliminándolo del sistema de archivos local] (http://stackoverflow.com/questions/1143796/git-remove-a-file-from-the-repository-without-deleting-it-f-the-local-filesys) – Cascabel

+0

Please mira las preguntas relacionadas sugeridas mientras escribes las tuyas; el duplicado fue probablemente uno de los primeros dos. – Cascabel

+0

Otro duplicado: http://stackoverflow.com/questions/1273108/how-do-i-git-rm-a-file-without-deleting-it-from-disk – Cascabel

Respuesta

462
git rm --cached -r somedir 

tendrá como escenario el borrado del directorio, pero no toca nada en el disco. Esto funciona también para un archivo, como:

git rm --cached -r somefile.ext 

Posteriormente es posible que desee añadir o somedir/somefile.ext a su archivo .gitignore modo que git no intenta volver a añadirla.

+15

Y luego agregue la ruta a .gitignore para que git no intente agregarlo más tarde. – grossvogel

+2

¿Esto dará como resultado (archivos en) el directorio que se eliminará cuando se retire del control remoto? – bstpierre

+0

No cuando tira; los archivos se mantendrán eliminados localmente durante el proceso de fusión automática del tirón. Después de eso, un push hará que los archivos se eliminen del lado del servidor. –

5

me acaba:

  • Mover la carpeta de su árbol de trabajo
  • git rm la carpeta, confirmar el cambio
  • Añadir a .gitignore (o .git/info/excludes), confirmar el cambio
  • Mover la carpeta de vuelta
+3

esto no es una buena solución, ¿y si tienes un directorio muy grande? – loostro

+0

probablemente necesite usar 'git rm -r' – theUtherSide

Cuestiones relacionadas