如何使用Git在不同的平台上拥有不同的工作目录结构?

如何使用Git在不同的平台上拥有不同的工作目录结构?,git,Git,在Windows上,我们有root\folder1,root\folder2,root\folder3。 在Linux上,我们有root/folder1/folder2,root/folder1/folder3 我强烈建议不要使用子模块或子路径 还有别的解决办法吗?创建一个分支并将文件重新安排到Linux结构是否可行?分支机构之间的合并有意义吗 编辑 我读了很多书,特别是关于分支工作流程的。我现在正在考虑notsubmodules语句。我关心的是,日常的开发人员存储库包含子模块以及可能带来的复杂

在Windows上,我们有
root\folder1
root\folder2
root\folder3
。 在Linux上,我们有
root/folder1/folder2
root/folder1/folder3

我强烈建议不要使用子模块或子路径

还有别的解决办法吗?创建一个分支并将文件重新安排到Linux结构是否可行?分支机构之间的合并有意义吗

编辑

我读了很多书,特别是关于分支工作流程的。我现在正在考虑notsubmodules语句。我关心的是,日常的开发人员存储库包含子模块以及可能带来的复杂情况。但是,我认为开发人员不需要子模块,他们可以通过嵌入式存储库满足需要

假设
文件夹1
文件夹2
文件夹3
是独立的git存储库-
repo1
repo2
repo3
。在Windows上,这3个存储库是独立的。在Linux上,
folder1
repo1
folder1/folder2
repo2
,等等

如果我在
文件夹1
中,并且
文件夹2
中有更改,那么
git是否会添加。
不包括
文件夹的更改?git看到另一个
.git
时是否停止

可能有2个单独的裸存储库用于构建,其中包括3个repo,作为Windows和Linux的适当配置中的子模块。然后可以在这里管理发布分支。但在回购协议1、回购协议2和回购协议3中可以看到哪些分支?有人试过这样的东西吗?工作正常吗?

在符号链接旁边(注意:您可以有,另请参见“”),这将是一个部署问题:

Ie:你会:

  • 您的常规本地克隆
  • 具有正确结构的克隆副本
  • 将该副本中的任何修改区分/导入回常规git回购的方法
。。。因此,保持公共目录结构仍然是最简单的解决方案


如果我在
文件夹1
中,并且
文件夹2
中有更改,那么
git是否会添加。
不包括
文件夹2
更改

不,它只考虑代码<文件夹> 1 /代码>的任何部分,除了<代码>文件夹2 < /代码>内容> < /P> git看到另一个时会停止吗

没错

可能有2个单独的裸存储库用于构建,其中包括3个repo,作为Windows和Linux相应配置中的子模块

注:裸回购协议不能包含另一个回购协议,因为该回购协议没有可包含的工作树。。。什么都行

与子模块相反,嵌套回购根本不会记录在父回购的分支中


我觉得子树更适合我们

是的,将涉及2个回购:一个用于Windows,一个用于Linux。

每一个都将聚合具有正确结构的子树回购。

在Linux上,您可以创建和跟踪符号链接。但是,你最好重构你的应用程序,使其在所有平台上具有相同的目录结构。我在下面编辑了我的答案,以解决你的编辑问题。非常确定git不会在任何版本的Windows上添加或创建符号链接…?@EdwardThomson git不会单独添加/创建符号链接,是的,你是正确的。但是一个注册为签出后钩子的脚本可以:呸,只是在检查。。。符号链接和连接在Windows上非常奇怪,如果添加了该功能(可以说是在框中),我会感到害怕,但我不会感到震惊!)有关详细信息,请参阅。@RobG是的,我已在答案中添加了此选项,并提供了指向子树详细信息的链接。