a partir de la versión 1.9.3 de git (Apple Git-50) en mac, ¿cómo elimino un submódulo de git? Estoy leyendo mucha información desactualizada y muchos desarrolladores me dicen que no funcionarán. ¿Cuál es la forma actual? hará git deinit pathToSubModule el truco?
Los pasos que pensé que funcionarían están aquí, pero los comentarios dicen que no.
Permítanme explicarles mi situación actual y lo que necesito lograr. Instalé el repositorio rápido y lo agregué como submódulo a mi proyecto. Este código ya está registrado y otros lo están usando. Lo que ahora tengo que hacer es bifurcar el mismo repositorio rápido y alojarlo en un github más seguro que mi empresa (por lo tanto, un github privado completamente diferente). Después de bifurcarlo, quiero agregar esa bifurcación como un gitSubmodule y dejar que reemplace el submódulo Quick actual que había instalado anteriormente.
actualización: he leído que la siguiente es la forma correcta en la última versión de git, por favor confirme.
To remove a submodule added using:
git submodule add [email protected]:repos/blah.git lib/blah
Run:
git rm lib/blah
That's it.
For old versions of git (circa ~1.8.5) use:
git submodule deinit lib/blah
git rm lib/blah
git config -f .gitmodules --remove-section submodule.lib/blah
fuente

Respuestas:
Tienes el
git submodule deinitdeinitfuente
rm -rf <asubmodule>si ya ha verificado una versión del repositorio base que ha anulado el registro del submódulo.Estoy usando la versión 2.16.2 de Git y
git rmhace el trabajo principalmente bien:Puede verificar con
git statusygit diff --cachedque esto desinicializa el submódulo y se modifica.gitmodulesautomáticamente. Como siempre, debe realizar el cambio.Sin embargo, aunque el submódulo se elimina del control de código fuente,
.git/modules/path-to-submoduleaún contiene el repositorio de submódulos y.git/configcontiene su URL, por lo que aún debe eliminarlos manualmente:Mantener el repositorio y la configuración del submódulo es intencional para que pueda deshacer la eliminación con, por ejemplo
git reset --hard.fuente
Cómo eliminar un submódulo de forma segura.
(se agrega a https://stackoverflow.com/a/1260982/342794 )
Enumere y ubique la sección del submódulo en el
.gitmodulesarchivo. Diga vía terminalvi .gitmodules. Ejemplo:Los submódulos se pueden utilizar con bifurcaciones locales. Para proyectos de larga ejecución, el código puede diferir del repositorio original y puede tener algunas correcciones. Es una buena idea verificar si el código del submódulo sufrió cambios durante el transcurso del proyecto. Ejemplo: mire los registros, si apunta a una
mastersucursal o alguna sucursal local. explorar registros de git para encontrar modificaciones que se realizaron a través de la terminal. normalmente estos se almacenan en un directorio, mi ejemplo, ensubmodulesdirectorio.Elimine la sección del submódulo de .gitmodules, guarde el archivo. Ejemplo:
git statusdebería mostrar solo lo siguiente como modificadoOrganice los cambios con
git add .gitmodules.Enumere y ubique la sección del submódulo en
.git/configarchivos. Diga vía terminalvi .git/config. Ejemplo:Elimina los archivos de git cache sobmodule. en ejecución
git rm --cached submodules/afnetworking(sin barra al final) lo eliminaría correctamente. Ejemplo:Elimine los archivos del submódulo en el
.gitdirectorio conrm -rf .git/modules/.... Confirmarlo congit statusdespués.Confirma los cambios. Confirmar con
git statusdespués.Elimine los archivos de submódulo sin seguimiento.
Elimina las referencias del proyecto Xcode. Cree, solucione problemas de compilación y tiempo de ejecución.
fuente