¿Cómo eliminar un directorio del repositorio git?

Tengo 2 directorios en mi repositorio de GitHub. Me gustaría eliminar uno de ellos. ¿Cómo puedo hacerlo sin borrar y volver a crear todo el repositorio?

Solución

Eliminar directorio de git y local

Podrías hacer checkout de 'master' con ambos directorios;

git rm -r one-of-the-directories
git commit -m "Remove duplicated directory"
git push origin  (typically 'master', but not always)

Eliminar el directorio de git pero NO el local

Como se menciona en los comentarios, lo que normalmente se quiere hacer es eliminar este directorio de git pero no borrarlo por completo del sistema de archivos (local)

En ese caso utiliza:

git rm -r --cached myFolder
Comentarios (16)

Si, por alguna razón, lo que ha dicho karmakaze no funciona, puedes probar a borrar el directorio que quieres utilizando o con el explorador del sistema de archivos (por ejemplo, en el Explorador de archivos de Windows). Después de borrar el directorio, emitir el comando:
git add -A
y luego
git commit -m 'borrando directorio'
y luego
git push origin master.

Comentarios (2)

Si eliminas los archivos del directorio (con git rm como explican las otras respuestas), entonces el directorio ya no existe en lo que respecta a git. No puedes confirmar un directorio vacío, ni tampoco puedes eliminarlo.

Esto es diferente a lo que ocurre en Subversion, donde tienes que hacer explícitamente svn rm emptyfolder/, y es, por cierto, la razón por la que la página man de git se describe a sí misma como "el estúpido rastreador de contenidos".

Una respuesta en "Cómo añado un directorio vacío a un repositorio git" enlaza con el FAQ sobre este tema:

Actualmente el diseño del índice git (área de preparación) sólo permite que los archivos ser listados, y nadie lo suficientemente competente para hacer el cambio de permitir directorios vacíos directorios vacíos se ha preocupado lo suficiente por esta situación para remediarla.

Los directorios se añaden automáticamente cuando se añaden archivos dentro de ellos. Es decir, es, los directorios nunca tienen que ser añadidos al repositorio, y no son rastreados por sí mismos.

Puedes decir "git add" y se añadirá los archivos allí.

Si realmente necesitas que un directorio exista en las comprobaciones deberías crear un archivo en él. .gitignore funciona bien para este propósito; puedes dejarlo vacío, o rellenar los nombres de los archivos que esperas que aparezcan en el directorio.

Comentarios (0)