¿Cómo eliminar un directorio del repositorio git?


Tengo 2 directorios en mi repositorio GitHub. Me gustaría borrar uno de ellos. ¿Cómo podría hacer eso sin borrar y recrear todo el repositorio?

Author: eirenaios, 2011-06-11

12 answers

Eliminar directorio de git y local

Usted podría checkout 'master' con ambos directorios;

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

Eliminar directorio de git pero NO local

Como se mencionó en los comentarios, lo que normalmente desea hacer es eliminar este directorio de git, pero no eliminarlo por completo del sistema de archivos (local)

En ese caso use:

git rm -r --cached myFolder
 1817
Author: karmakaze,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-04-19 19:23:35

Para eliminar la carpeta/directorio solo del repositorio git y no del local, pruebe 3 comandos simples.


Pasos para eliminar el directorio

git rm -r --cached FolderName
git commit -m "Removed folder from repository"
git push origin master

Pasos para ignorar esa carpeta en las próximas confirmaciones

Para ignorar esa carpeta de las siguientes confirmaciones haga un archivo en la raíz llamado .gitignore y poner el nombre de las carpetas en él. Puedes poner tantos como quieras

.gitignore el archivo se verá como esto

/FolderName

eliminar directorio

 219
Author: eirenaios,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-01-03 12:03:28

Si, por alguna razón, lo que dijo karmakaze no funciona, puede intentar eliminar el directorio que desea eliminar (a través de su navegador del sistema de archivos), emitiendo el comando
git add -A
y luego
git commit -m 'deleting directory'
y luego
git push origin master.

 64
Author: cmcculloh,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2013-08-06 08:30:42

Puedes probar esto: git rm -rf <directory_name>

Forzará la eliminación del directorio.

 20
Author: Breen ho,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2013-10-23 10:21:33

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 puede confirmar un directorio vacío, ni puede eliminar uno.

Esto es diferente a subversion donde tienes que explícitamente svn rm emptyfolder/, y es por eso que la página man para git se describe a sí misma como "el estúpido rastreador de contenido"

Una respuesta en "Cómo puedo añadir un directorio vacío a un repositorio git" enlaces a la FAQ sobre este tema:

Actualmente el diseño del índice git (staging área) solo permite archivos a estar en la lista, y nadie lo suficientemente competente para hacer el cambio para permitir vacío directorios se ha preocupado lo suficiente esta situación para remediarla.

Los directorios se añaden automáticamente al agregar archivos dentro de ellos. Que es decir, los directorios nunca tienen que ser añadidos al repositorio, y no son rastreados por su cuenta.

Puedes decir "git add <dir> " y agregará archivos allí.

Si realmente necesita un directorio para exist in checkouts debe crear un archivo en él. .gitignore funciona bien para este propósito; puede dejarlo vacío, o rellene los nombres de los archivos que espere aparecer en el directorio.

 15
Author: dbr,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-05-23 12:26:35

Vaya a su directorio git y escriba el siguiente comando: rm-rf Nombre del directorio>

Después de eliminar el directorio confirme los cambios por: git commit-m"Tu mensaje de confirmación"

Luego Simplemente presione los cambios en el directorio GIT remoto: git push origin Nombre de la rama>

 5
Author: anky,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-07-13 11:53:31

Normalmente uso git add --all para eliminar archivos / carpetas de repositorios remotos

rm -r folder_name
git add --all
git commit -m "some comment"
git push origin master

master puede ser reemplazado por cualquier otra rama del repositorio.

 4
Author: ettanany,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-09-05 15:41:41

Puede eliminar la carpeta localmente y luego empujar, de la siguiente manera:

git rm -r folder_name
git commit -m "your commit"
git push origin master
 3
Author: shrikant,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-02-26 18:59:11

Puede usar el Árbol de fuentes Attlasian (Windows) (https://www.atlassian.com/software/sourcetree/overview). Simplemente seleccione los archivos del árbol y presione el botón "Eliminar" en la parte superior. Los archivos se eliminarán del repositorio local y de la base de datos git local. Luego comprométete, luego empuja.

 2
Author: Sergey Groshev,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-09-01 18:04:22

Uno de mis colegas sugirió BFG Repo-Cleaner que creo poderoso. No es solo eliminar datos no deseados, sino también limpiar su repositorio de cualquier información de confirmación relacionada.

 1
Author: thanh.h.le,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-11-16 14:28:00

El primer comando de git necesita saber quién es usted antes de eliminar cualquier cosa

  1. git init
  2. git config user.name "alguien"
  3. usuario de configuración de git.correo electrónico "[email protected]"
  4. git rm-r
  5. git commit-m "borrar dir"
  6. git push origin master
 1
Author: Zeus,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-07-06 21:27:33

Para añadir un nuevo directorio:

mkdir <YOUR-DIRECTORY>

Pero ahora Git no es consciente de este nuevo directorio, porque Git mantiene pistas de archivos no directorios DIRECTORIO

git status

Git no será consciente con el cambio que hemos hecho, por lo que agregamos un archivo oculto .keep para que Git sea consciente con este nuevo cambio.

touch /YOUR-directory/.keep

Ahora, si presionas git status Git estará al tanto de los cambios.

Y si desea eliminar el directorio, debe usar este comando.

rm -r <YOUR-DIRECTORY>

Y Si se comprueba mediante git status, usted verá que el directorio ha sido eliminado.

 0
Author: Abo3atef,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2018-09-27 03:37:06