¿Cómo eliminar un directory del repository de git?

Tengo 2 directorys en mi repository de GitHub. Me gustaría eliminar uno de ellos. ¿Cómo podría hacer eso sin eliminar y volver a crear el repository completo?

Eliminar el directory de git y local

Puede verificar 'maestro' con ambos directorys;

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 el directory de git pero NO local

Como se mencionó en los comentarios, lo que generalmente desea hacer es eliminar este directory de git pero no eliminarlo completamente del sistema de files (local)

En ese caso, use:

 git rm -r --cached myFolder 

Para eliminar carpeta / directory solo del repository de git y no de los commands locales try try 3.


Pasos para eliminar el directory

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

Pasos para ignorar esa carpeta en los siguientes commits

Para ignorar esa carpeta de los siguientes commits, haga un file en la raíz llamado .gitignore y ponga ese nombre de carpetas en él. Puedes poner tantos como quieras

El file .gitignore se verá así

 /FolderName 

eliminar directorio

Si, por alguna razón, lo que dice karmakaze no funciona, puedes intentar eliminar el directory que deseas eliminar (a través del browser del sistema de files), emitiendo el command
git add -A
y entonces
git commit -m 'deleting directory'
y entonces
git push origin master .

Si elimina los files en el directory (con git rm como explican las otras respuestas), entonces el directory ya no existe en lo que se refiere a git. No puede comprometer un directory vacío, ni puede eliminar uno.

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

Una respuesta en "Cómo agrego un directory vacío a un repository git" enlaces a las preguntas frecuentes sobre este tema :

Actualmente, el layout del índice git (área de transición) solo permite que se incluyan los files, y nadie lo suficientemente competente como para realizar el cambio para permitir directorys vacíos se ha preocupado lo suficiente sobre esta situación como para remediarlo.

Los directorys se agregan automáticamente al agregar files dentro de ellos. Es decir, los directorys nunca deben agregarse al repository y no se rastrean por sí solos.

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

Si realmente necesita que exista un directory en las cajas, debe crear un file en él. .gitignore funciona bien para este propósito; puede dejarlo vacío o completar los nombres de los files que espera mostrar en el directory.

Puede intentar esto: git rm -rf <directory_name>

Obligará a borrar el directory.

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

 git rm -r folder_name git commit -m "your commit" git push origin master 

Vaya a su directory git y escriba el siguiente command: rm -rf < Nombre del directory >

Después de eliminar el directory, confirme los cambios por: git commit -m "Your Commit Message"

A continuación, simplemente presione los cambios en el directory remoto GIT: git push origen < Nombre de la twig >

Usualmente uso git add --all para eliminar files / carpetas de repositorys remotos

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

master puede ser reemplazado por cualquier otra twig del repository.

Puede usar Attlasian Source Tree (Windows) ( https://www.atlassian.com/software/sourcetree/overview ). Simplemente select los files del tree y presione el button "Eliminar" en la parte superior. Los files se eliminarán del repository local y de la database local de git. Entonces cometer, luego empujar.

Uno de mis colegas sugirió BFG Repo-Cleaner, que creo que es poderoso. No solo elimina los datos no deseados, sino que también limpia su repository de cualquier información de compromiso relacionada.

El primer command de git necesita saber quién es usted antes de borrar cualquier cosa

  1. git init
  2. git config user.name "alguien"
  3. git config user.email "[email protected]"
  4. git rm -r
  5. git commit -m "eliminando dir"
  6. git push origin master

Para agregar un nuevo directory:

 mkdir <YOUR-DIRECORT> 

Pero ahora Git no está al tanto de este nuevo directory, porque Git guarda las pistas del file, no de los directorys. DIRECTORIO

 git status 

git no se dará count con el cambio que hemos realizado, por lo que .keep file .keep oculto para que Git tome conciencia de este nuevo cambio.

 touch /YOUR-directory/.keep 

Ahora si git status Git se dará count de los cambios.

Y si desea eliminar el directory, debe usar este command.

 rm -r <YOUR-DIRECORT> 

y Si marcó usando el git status , verá que el directory ha sido eliminado.