4

在本地机器上,我有几个项目导入的通用脚本,例如:

/common/
  .git/
  scripts/
    common1.py
/projectA/
  .git/
  scripts/
    A1.py (imports from common1.py)
/projectB/
  .git/
  scripts/
    B1.py (imports from common1.py)

常见的脚本和项目在单独的 git 存储库中进行跟踪。这适用于我的个人工作,因为我可以克隆所需的所有存储库。当通过 git 公开项目时,我可以通过子树或子模块包含公共文件(对公共文件的引用显然在 B1.py 中更新):

/projectB/
  .git/
  scripts/
    common/ (subtree from common)
      common1.py
    B1.py

现在我想组装一个超级项目(目标):

/projectC/
  .git/
  scripts/
    common1.py
    A1.py
    B1.py

使用子树和子模块,我已经能够实现:

/projectC/
  .git/
  scripts/
    common/
      common1.py
    projectA_scripts/ (via subtree)
      A1.py
      common/ (via subtree w/in projectA)
        common1.py
    projectB_scripts/ (via subtree)
      B1.py
      common/ (via subtree w/in projectB)
        common1.py 
    C1.py 

然而,这是相当多余的,并且通过 sub-x 链传播更改将是乏味的。如何在保留将更新拉到项目和公共文件的能力的同时实现上述目标目录结构?对于它的价值,我不希望需要将子树/子模块更改推送到上游。

不需要在两个操作系统上进行独立配置的跨平台 (Windows-UNIX) 解决方案的奖励。基于 Git 的解决方案更可取。

4

1 回答 1

2

由于您不必将这些子树/子模块内容推回,您可以考虑将这些文件夹符号链接到common/

于 2013-07-28T10:27:07.757 回答