2010-10-04 61 views
1

我有一个目录,看起来像这样:如何维护驻留在另一个项目目录中的Git存储库?

ProjectFolder/ 
    + project_file 

    + project_file_2 

    + project_folder/ 
     + another_file 

    * my_stuff/  <= add to repo 
     * foo   <= add to repo 
     * bar   <= add to repo 

    * my_file   <= add to repo 
    * my_other_file <= add to repo 

ProjectFolder是一个软件,我做到了没有写,也不是一个Git仓库。对于它的价值,它是vBulletin。

在主文件夹中,我有一些项目扩展/模块/等。这些文件的位置由外部项目强制执行。幸运的是,我关心的95%的文件来自ProjectFolder根目录。 (请注意上面标记为*的文件)

有没有一种方法可以轻松地将*标记文件添加到git回购?

我在这里看到的问题是,git将无法区分我的扩展与外部项目。

额外:当更新外部项目时,只需重新登录git仓库以重新安装我的git仓库中的所有扩展就会很好。

回答

1

回购内回购意味着一般submodule

如果您可以将ProjectFolder设置为“父级回购”,并且您的每个子目录都是子模块,那么您就可以实现您之后的组织类型。

每个subrepo可以独立更改。
即使ProjectFolder不是一个仓库,没有什么阻止你做一个在它(git init .),你可以在它直接my_filemy_other_file,再加上引用声明为自己的回购其他子目录添加。

+0

外部项目不是git存储库。 ParentProject的更新不受版本控制。它以'.zip'文件的形式出现。 – 2010-10-04 17:41:09

+1

@macek,但是如果您从ParentProject进行回购,您可以直接在其中解压缩,并在各种子模块中查看由该zip引入的更改:然后,您将在提交父回购前提交每个子模块中的更改('ParentProject'文件夹) – VonC 2010-10-04 17:44:48

相关问题