¿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?
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
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
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
.
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.
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.
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>
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.
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
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.
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.
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
- git init
- git config user.name "alguien"
- usuario de configuración de git.correo electrónico "[email protected]"
- git rm-r
- git commit-m "borrar dir"
- git push origin master
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.
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