Comando git submodule
git submoduleEl comando se utiliza para gestionar proyectos que contienen otros repositorios de Git.
git submoduleEl comando es muy útil para proyectos grandes o cuando es necesario integrar bibliotecas externas al proyecto. Mediante el uso de submódulos, puedes gestionar bibliotecas externas como parte de tu proyecto sin tener que fusionarlas directamente en el repositorio principal.
Explicación detallada de uso
1. Inicializar submódulos
git submodule init
Este comando inicializa todos los submódulos en el archivo de configuración. Configura la URL y la ruta de los submódulos según la información del archivo .gitmodules, pero no descarga el contenido de los submódulos.
Uso común:Después de clonar un repositorio que contiene submódulos, ejecuta este comando para inicializar los submódulos.
git clone <repo-url> cd <repo-dir> git submodule init
2. Actualizar submódulos
git submodule update
Este comando obtiene el contenido de los submódulos desde su repositorio remoto y lo actualiza al commit especificado en el archivo .gitmodules.
Uso común:Después de inicializar los submódulos, o cuando necesites actualizar el contenido de los submódulos, ejecuta este comando.
git submodule update
3. Agregar submódulos
git submodule add <repo-url> [<path>]
Este comando agrega el repositorio de Git especificado como un submódulo al repositorio actual.
<repo-url>es la dirección del repositorio del submódulo,<path>es la ruta del submódulo en el repositorio principal (opcional; si no se especifica, se usa por defecto el nombre del repositorio del submódulo como ruta).
Uso común:Agregar una biblioteca externa como submódulo al proyecto.
git submodule add https://github.com/example/libfoo.git libfoo
4. Eliminar submódulos
git submodule deinit [<path>] git rm [<path>]
git submodule deinit <path>: elimina el submódulo del.git/configarchivo, y elimina los archivos del directorio del submódulo.git rm <path>: elimina la referencia del submódulo del repositorio principal y confirma los cambios.
Uso común:Eliminar un submódulo del repositorio principal.
git submodule deinit libfoo git rm libfoo rm -rf .git/modules/libfoo5. Listar submódulos
git submodule
Enumera todos los submódulos en el repositorio actual, con su hash de commit y su ruta.
Uso común:Ver el estado de todos los submódulos en el proyecto.
git submodule
6. Actualizar todos los submódulos
git submodule update --recursive --remote
--recursive: actualiza recursivamente todos los submódulos (incluidos los submódulos de los submódulos).--remote: obtiene los últimos cambios desde el repositorio remoto del submódulo.
Uso común:Cuando un submódulo contiene otros submódulos, asegúrate de que todos los niveles de submódulos se actualicen a la versión más reciente.
git submodule update --recursive --remote
7. Verificar el estado de los submódulos
git submodule status
Muestra el estado actual de los submódulos, incluido el hash de commit actual, la ruta y si hay cambios sin confirmar.
Uso común:Ver el estado actual de los submódulos.
git submodule status
Otras extensiones
Operaciones básicas de Git