3

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

我强烈希望不使用子模块或子树。

还有其他解决方案吗?是否可以创建一个分支并将文件重新排列到 Linux 结构中?分支之间的合并有意义吗?

编辑

我做了更多的阅读,尤其是关于分支工作流程。我现在正在重新考虑 NOT submodules 语句。我担心拥有包含子模块的日常开发人员存储库以及似乎需要的复杂性。但是,我认为开发人员不需要子模块,他们可以通过嵌入式存储库来满足需求。

folder 1,folder 2folder3是单独的 git 存储库 - repo 1,repo 2repo 3. 在 Windows 上,3 个存储库是分开的。在 Linux 上,folder 1is repo 1folder1/folder 2isrepo 2等。

如果我在folder 1并且 有变化folder 2,a 会git add .不会包括folder2 变化?git 在看到另一个时会停止.git吗?

可能有 2 个单独的裸存储库用于构建,其中包括 3 个存储库作为 Windows 和 Linux 适当配置中的子模块。然后可以在此处管理发布分支。但是在什么分支中看到repo 1, 2 and 3?有没有人尝试过这样的事情?它运作良好吗?

4

1 回答 1

3

除了mvp提到的符号链接(注意:您也可以在 Windows 7+ 上使用符号链接,另请参阅“ Windows 中的 Git符号链接”),这将是一个部署问题:

即:您将拥有:

  • 您的常规本地克隆
  • 具有正确结构的克隆副本
  • 一种将在该副本中所做的任何修改差异/导入回常规 git 存储库的方法

...所以是的,保持通用目录结构仍然是最简单的解决方案。


如果我在folder 1里面并且有变化folder 2,会git add .不会包括folder 2变化?

不,它只会考虑内容之外的任何部分folder 1的更改者。 folder 2

当它看到另一个 .git 时,git 会停止吗?

确切地。

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

注意:一个裸仓库不能包含另一个仓库,因为没有工作树可以让所述仓库包含……任何东西。

与子模块相反,嵌套存储库根本不会记录在父存储库的分支中。


我怀疑子树更适合我们。

是的,子树(自 1.7.11 以来是 git 的一部分)将涉及 2 个存储库:一个用于 Windows,一个用于 Linux。
每个都将聚合具有正确结构的子树存储库。

于 2013-06-18T07:09:03.003 回答