git git-subtree

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 no MY_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?