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 deinit
deinit
fuente
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 rm
hace el trabajo principalmente bien:Puede verificar con
git status
ygit diff --cached
que esto desinicializa el submódulo y se modifica.gitmodules
automá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-submodule
aún contiene el repositorio de submódulos y.git/config
contiene 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
.gitmodules
archivo. 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
master
sucursal 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, ensubmodules
directorio.Elimine la sección del submódulo de .gitmodules, guarde el archivo. Ejemplo:
git status
debería mostrar solo lo siguiente como modificadoOrganice los cambios con
git add .gitmodules
.Enumere y ubique la sección del submódulo en
.git/config
archivos. 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
.git
directorio conrm -rf .git/modules/...
. Confirmarlo congit status
después.Confirma los cambios. Confirmar con
git status
despué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