2012-10-05 38 views
0

我有一个我想要版本控制的个人项目,但我不确定如何使用git来管理它。下面是该文件夹结构的例子:使用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 

我仍然得到一个错误说这是库外。

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

+0

你为什么要分开它们?我想你可以用子树来做到这一点,但它可能会让事情变得复杂一些。你认为这是非常必要的吗? –

+0

@Renato Zannon我需要将它们分开,因为每个插件都是单独发布的。所以也许plugin1会在1.5版本,而plugin2会在2.1版本等等。 – user1699176

+0

我认为这应该由您使用的语言/框架来处理,而不是git。您正在开发的技术是什么? –

回答

0

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

  1. 你的主项目中创建回购协议,任何模块(库,插件,模块等)
  2. 您的结构可能会有所不同,但你想创建引用包含其他仓库主要储存库子模块你的插件等

    # git submodule add git://path-to-your-repo.git modulename 
    
  3. 需要注意的是你拉的内容到主回购和它连接到主回购协议,它允许你只拉子模块的特定版本时,它与兼容的那个版本主要项目。以下内容将子模块项目拖入主项目中。

    # git submodule update modulename 
    

这只是一个高度概括。尝试阅读http://www.git-scm.com/book/en/Git-Tools-Submodules了解更多详情。