Elija solo un subset de carpetas cuando use el clon de Git

¿Hay alguna manera de clonar solo un subset de la twig original en git?

P.ej

Tengo la siguiente estructura de carpetas:

UN
| _ B
| _ C
| _ D

Y después del clon quiero tener:

UN
| _ C
| _ D

Quiero usar este flujo para implementar mi aplicación:

  • Para clonar más rápido tomando solo una parte del repository e ignorando los files de desarrollo innecesarios.
  • No quiero tener algunos files en producción por razones de security.

¿Algún consejo?

Como sugiere el comentario, no puedes clonar parte de una ruta. Si está acostumbrado a diferentes paradigmas de control de fuente, como el utilizado por la subversión, esto puede parecer poco intuitivo al principio. La razón por la que no puedes hacerlo es porque git almacena instantáneas de todo el tree. Entonces puedes get un clon superficial, lo que significa que obtienes solo un historial reciente hasta cierto punto. Esto es más parecido a un corte o corte horizontal, en lugar de uno vertical que está buscando.

La mejor forma de get lo que desea es usar submodules. Si ya tiene todo en un repository, debería comenzar de nuevo con este paradigma o separar el repository en varios repositorys con filter-branch. Esto también sería complicado, ya que terminaría con commits vacíos en todos los repos y si se deshace de ellos, tendría una complicada bifurcación de filters de seguimiento para vincular los commits correctos en el submodule al repository principal.

Eche un vistazo al capítulo sobre submodules en http://git-scm.com/book .

Lo que quieres es posible desde Git 1.7 con lo que se llama escaso checkout.

Una buena explicación se encuentra aquí .