¿Cómo usar Git para tener diferentes estructuras de directorys de trabajo en diferentes plataforms?

En Windows tenemos root\folder1 , root\folder2 , root\folder3 . En Linux tenemos root/folder1/folder2 , root/folder1/folder3

Preferiría NO utilizar submodules ni subtreees.

¿Hay alguna otra solución? ¿Funcionaría crear una sucursal y reorganizar los files a la estructura de Linux? Y las fusiones entre las twigs ¿tendrían sentido?

Editar

He leído mucho más, especialmente sobre los flujos de trabajo de las sucursales. Ahora estoy reconsiderando la statement NO de submodules. Me preocupaba tener el repository diario de desarrolladores que contiene submodules y las complicaciones que parecen implicar. Pero, creo que los desarrolladores no necesitan submodules, pueden satisfacer la necesidad con repositorys integrados.

Digamos que la folder 1 , la folder 2 y la folder 2 son repositorys git separados: folder3 folder 1 , folder3 folder 2 y folder3 repo 3 . En Windows, los 3 repositorys están separados. En Linux, la folder 1 es repo 1 , folder1/folder 2 es repo 2 , etc.

Si estoy en la folder 1 y hay cambios en la folder 2 , agregará un git add . no include la folder 2 cambio? ¿Se detiene git cuando ve otro .git ?

Podría haber 2 repositorys separados para la compilation que incluye los 3 repos como submodules en la configuration adecuada para Windows y Linux. Las twigs de publicación se pueden gestionar aquí. Pero, ¿qué ramificación se ve en el repo 1, 2 and 3 ? ¿Alguien ha intentado algo como esto? ¿Funcionó bien?

Además de los enlaces simbólicos mencionados por mvp (nota: también puedes tener enlaces simbólicos en Windows 7+ , ver también " Git Symlinks en Windows "), esto sería un problema de implementación :

Es decir: usted tendría:

  • tu clon local normal
  • una copy de ese clon con la estructura correcta
  • una forma de modificar / importar cualquier modificación hecha en esa copy en el repository regular de git

… así que sí, mantener una estructura de directory común sigue siendo la solución más simple.


Si estoy en la folder 1 y hay cambios en la folder 2 , agregará un git add . no include la folder 2 cambio?

No, solo considerará los modificadores en cualquier parte de la folder 1 , excepto en el contenido de la folder 2 .

¿Se detiene git cuando ve otro .git?

Exactamente.

Puede haber 2 repositorys separados para la construcción que incluyen los 3 repos como submodules en la configuration adecuada para Windows y Linux

Nota: un repository simple no puede contener otro repository, ya que no existe un tree de trabajo para que dicho repository incluya … cualquier cosa.

Un repository nested no se registraría en absoluto en una twig de un repository principal, a diferencia de un submodule.


Sospecho que el subtree es mejor para nosotros.

Sí, el subtree (parte de git desde 1.7.11) implicaría 2 repos: uno para Windows y otro para Linux.
Cada uno agregaría repos de subtreees con la estructura correcta.