使用git管理带有外部文件的多个子项目

时间:2012-10-05 23:16:36

标签: git subproject

我有一个我希望版本控制的个人项目,但我不确定如何使用git来管理它。以下是文件夹结构的示例:

project
project/public/plugin1
project/public/plugin2
project/lib/plugin1
project/lib/plugin2

我打算为每个插件或模块创建单独的存储库,但它似乎有点棘手,因为并非插件的所有文件都在同一文件夹下组合在一起。所以我需要跟踪这些目录为plugin1:

project/public/plugin1
project/lib/plugin1

同样对于plugin2:

project/public/plugin2
project/lib/plugin2

在公共文件夹中是css和js等文件,所以你可以说更重要的文件是lib中的文件。我应该在该文件夹中设置存储库,并以某种方式尝试添加外部公用文件夹?但当然git不会让我这样做。我已经从另一个问题尝试了这个:

git --work-tree=/ add /project/public/plugin1

我仍然收到错误,说它在存储库之外。

由于这只是一个个人项目,我不需要访问或做任何远程操作,这有望消除一些并发症。关于正确设置方法的任何想法?感谢。

1 个答案:

答案 0 :(得分:0)

看起来像是一个较旧的问题但是,对于任何看这个问题的人来说,你想要做的就是使用git子模块。

  1. 为您的主项目和任何模块(库,插件,模块等)创建存储库
  2. 您的结构可能会有所不同,但您希望在主存储库中创建引用包含插件的其他存储库等的子模块。

    # git submodule add git://path-to-your-repo.git modulename
    
  3. 请注意,您将内容拖入主仓库并将其附加到主仓库的该修订版本,这样您只能在与主项目兼容时才提取子模块的特定版本。以下内容将子模块项目拉入主项目中。

    # git submodule update modulename
    
  4. 这只是一个高级概述。请尝试阅读http://www.git-scm.com/book/en/Git-Tools-Submodules了解更多详情。