remove - git tag best practices
¿Cómo puedo haber vinculado dependencias en un git repo? (1)
En mis scripts, a menudo uso bibliotecas (las mías o de otros) que tienen sus propios repositorios. No quiero duplicar los que están en mi repositorio y no puedo actualizarlos cada vez que sale una nueva versión. Sin embargo, cuando alguien clona el repositorio, todavía debería funcionar localmente y no tener enlaces rotos.
¿Alguna idea sobre lo que podría hacer?
Puedes hacer esto con submódulos en git. En tu repositorio, haz:
git submodule add path_to_repo path_where_you_want_it
Entonces, si el repositorio de la biblioteca tiene una URL de git://github.com/example/some_lib.git
y la quiere en lib/some_lib
en su proyecto, debe ingresar:
git submodule add git://github.com/example/some_lib.git lib/some_lib
Tenga en cuenta que esto debe hacerse desde el directorio de nivel superior en su repositorio. Así que no lo cd
en el directorio donde lo está poniendo primero.
Después de agregar un submódulo, o cada vez que alguien haga un checkout nuevo de su repositorio, deberá hacer lo siguiente:
git submodule init
git submodule update
Y luego, todos los submódulos que ha agregado serán revisados en la misma revisión que tiene.
Cuando desee actualizar a una versión más nueva de una de las bibliotecas, cd
en el submódulo y extraiga:
cd lib/some_lib
git pull
Luego, cuando hagas un git status
, deberías ver lib/somelib
en la sección modificada. Agrega ese archivo, confirma y estarás actualizado. Cuando un colaborador extraiga esa confirmación en su repositorio, verán que lib/somelib
modificado hasta que lib/somelib
ejecutar la git submodule update
.