Subárbol Git: use solo el subrepositivo en lugar de todo el repositorio
git-subtree (1)
Normalmente, un repositorio git se realiza para ser completamente clonado / cargado.
Podrías ir a un checkout disperso (Git1.7 +), pero solo si no intentas hacer ninguna modificación y rechazarlas. Vea este ejemplo :
$ git init
Initialized empty Git repository in /tmp/si-sandbox/.git/
(master) $ git config core.sparsecheckout true
(master) $ echo message-store/ >> .git/info/sparse-checkout
(master) $ git remote add origin git://github.com/iwein/Spring-Integration-Sandbox.git
(master) $ git pull origin master
El reports :
Esto funcionó con algunos cambios.
Porque, yo uso el submódulo que tuve que usar
echo MY_FOLDER/* >> .git/info/modules/MY_MODULE/sparse-checkout
Y por alguna razón, la
MY_FOLDER/
parte noMY_FOLDER/
sin*
Tengo un proyecto que utiliza algunas bibliotecas de terceros. Así que la estructura del directorio es algo como:
MY_COOL_PROJECT
3rdParty
LIB_1
LIB_2
Source
MY_PROJECT
Las bibliotecas se encuentran en repositorios separados. Por lo tanto, si quiero usar un repositorio git para las bibliotecas de terceros, puedo hacerlo:
git subtree add --prefix 3rdParty/LIB_1 --squash http://My3rdPartyLibs.com/lib1.git master
Sin embargo, dentro del repositorio lib1.git solo hay una carpeta bin que necesito. También contiene carpetas como documentación, ejemplos, etc. ¿Cómo puedo "conectar" solo mi repositorio con la carpeta lib1 / bin en lugar de todo el repositorio? ¿Es eso posible?