Proyecto Hierachy con Git

Estoy acostumbrado a usar TFS donde tiene una colección de proyectos de equipo y me gusta tener la raíz asignada a una sola carpeta (D: \ Desarrollo) con subcarpetas para cada proyecto de equipo (D: \ Desarrollo \ App1) y luego subcarpetas para branches (D: \ Dvelopment \ App1 \ Trunk).

Intenté hacer esto en Git, pero parece que los commands se ejecutan en el nivel de repository, que es la carpeta raíz de todos mis proyectos, no de la carpeta en la que estaba trabajando. En primer lugar, hay una forma de configurar git de la manera que yo quería. Parece que deberías tener un repository para cada proyecto de equipo. Entonces, surge la pregunta: ¿cuál es la mejor forma de compartir un código común entre las Soluciones?

A less que los miembros del equipo siempre necesiten acceder a cada proyecto, y posiblemente incluso si lo hacen, es probable que desee configurar repositorys separados para cada proyecto. Los miembros del equipo pueden clonar solo los repositorys que necesitan. No necesitarás subcarpetas para sucursales, git administra las sucursales, lo que es bueno porque permite a los miembros del equipo hacer cosas como tener sus propias sucursales privadas.

Finalmente, con respecto al intercambio de código común, querrá colocar cada unidad de código común en su propio repository y luego insert el código común en cada proyecto que lo necesite utilizando submodules como lo sugirió el sekati.

Git SubModules quizás sea lo que estás buscando.

Soluciones

Para compartir código común en soluciones, debe usar submodules . Funcionan como repositorys dentro de los repositorys.

Para crear twigs, debe usar twigs y directorys no separados, como SVN. Subversion no tiene concepto de twigs, solo puedes emularlo. Git tiene el concepto de twigs y mi consejo es que deberías usarlo.

Recursos

  • Más sobre las twigs: Git Book: Basic Branching and Merging
  • Más sobre los submodules: Git Book: Submodules