Agregar submódulo:
$ git submodule add <url del submódulo> <ruta del submódulo>
Ejemplo:
$ git submodule add https://sitio-web.dominio/proyecto.git deps/proyecto
Clonar un proyecto que usa submódulos:
Ahora, cuando clonamos un proyecto que tiene submódulos, estos no se descargan automáticamente, a pesar de que se crean sus directorios. Para descargar los submódulos tenemos que hacer lo siguiente:
# Primero, inicializar todos los submódulos
$ git submodule init
# Luego y por último descargarlos
$ git submodule update
Actualizar submódulos:
Cuando desarrollamos submódulos en paralelo con nuestro proyecto principal, a menudo queremos estar actualizando nuestras dependencias, para esto, bastará con entrar al directorio donde tenemos nuestro submódulo y hacer pull (git pull), o si lo que queremos es actualizar todos los submódulos al mismo tiempo:
$ git submodule foreach git pull
Si lo que queremos es eliminar un submódulo que ya no usaremos, debemos seguir varios pasos:
1. Lo primero es abrir el archivo .gitmodules y eliminar las lineas que contengan información de este módulo. Este archivo luce así:
| 
[submodule "deps/zlib"]
        path = deps/zlib
        url = git@github.com:sigifredo/zlib.git
[submodule "deps/libgit2"]
        path = deps/libgit2
        url = git@github.com:sigifredo/libgit2.git
 | 
| Archivo: .gitmodules | 
Debemos eliminar las lineas en negrilla.
2. También tendremos que abrir el archivo .git/config y eliminar la configuración del submódulo. De nuevo, el archivo luce así:
| 
[core]
        repositoryformatversion = 0
        filemode = false
        bare = false
        logallrefupdates = true
        symlinks = false
        ignorecase = true
        hideDotFiles = dotGitOnly
[remote "origin"]
        url = git@github.com:sigifredo/gito.git
        fetch = +refs/heads/*:refs/remotes/origin/*
[branch "development"]
        remote = origin
        merge = refs/heads/development
[submodule "deps/zlib"]
        url = git@github.com:sigifredo/zlib.git
[submodule "deps/libgit2"]
        url = git@github.com:sigifredo/libgit2.git
 | 
| Archivo: .git/config | 
Debemos eliminar las lineas en negrilla.
3. Por último, debemos eliminar el directorio del submódulo de la siguiente manera:
$ git rm --cached <dirección del submódulo>
Ejemplo:
$ git rm --cached deps/proyecto
Estos son los procedimientos básicos para trabajar con los submódulos de Git. Espero les sea de mucha ayuda en su proceso de desarrollo. Un saludo.
Referencias:
- Página oficial del proyecto: http://git-scm.com/
- Git Book (en ingles): http://git-scm.com/book
 
 
No hay comentarios:
Publicar un comentario