git子模块,子树或其他

时间:2019-01-13 20:18:01

标签: git git-submodules git-subtree git-subrepo

可能是我误解了git的工作原理,我的目录结构如下:

project (git-repo)
  project 1 (git-repo)
  project 2 (git-repo)
  common scripts (git-repo)

所有这些文件夹都有自己的存储库,主project可以具有子存储库,例如project 1project 2child scripts。它们可以是子模块或子树。问题common scripts包含一些共同构建project 1project 2的代码。保持这种状态最好的策略是什么,这样每个项目都可以独立并且无需在两个地方都保留通用脚本。

1 个答案:

答案 0 :(得分:0)

我只想离开我想出的间接解决方案。在获得其他方法之前,它可能对其他人有用。

就目前而言,我无法避免不将common scripts文件夹保留在两个位置,但是可以将其保留在一个位置。以下是我目前采用的结构,

project
  project 1 (git-repo)
    common-script (git-repo/submodule)
  project 2 (git-repo)
    common-script (git-repo/submodule)
  common-script (git-repo)

这样,我可以从自己的仓库中处理common-script,并可以从每个项目中使用git submodule foreach git pull origin master并提交仓库,以便在每个依赖项中都有更新的脚本项目。