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

时间:2013-06-18 04:54:04

标签: git

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

我非常希望不使用子模块或子树。

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

修改

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

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

如果我在folder 1并且folder 2中有变化,git add .是否会包含folder 2更改?当git看到另一个.git时会停止吗?

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

1 个答案:

答案 0 :(得分:3)

mentioned旁边的符号链接mvp旁边(注意:您可以symlink on Windows 7+ too,另请参阅“Git Symlinks in Windows”),这将是部署问题:

是的,你会:

  • 您的常规本地克隆
  • 具有正确结构的克隆的副本
  • 将该副本中的任何修改差异/导入回常规git repo
  • 的方法

...是的,保持公共目录结构仍然是最简单的解决方案。


  

如果我在folder 1并且folder 2中有变化,git add .是否会包含folder 2更改?

不,它只考虑folder 1 folder 2内容之外的任何部分的转换器。

  

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

完全。

  

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

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

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


  

我怀疑子树更适合我们。

是的,subtree (part of git since 1.7.11)将涉及2个回购:一个用于Windows,一个用于Linux 每个人都会使用正确的结构聚合子树回购。