两个git repos共存 - 不可能,或者如何?

时间:2013-02-28 21:57:19

标签: git github

我们有一个企业应用程序,我们使用git for scm。此外,该项目的基础是我们的开源工具,一个公共git repo。

如果您是企业客户,则安装过程a)安装开源工具,b)在同一目录结构中的开源工具的顶部上安装企业功能

对于部署,这很好。对于发展而言,这是一场噩梦。

有没有办法让两个复杂的重叠项目在同一个结构中?我不知道怎么想但是我想问。

现在我以这种方式设置它:

  • 一个目录中的开源工具
  • 另一个企业代码
  • 将(通过符号链接)企业“安装”到开源目录中的脚本,这样我就可以开发/运行/测试

问题是,在我提交开源代码库变更之前,我必须“卸载”企业,这样我才能清楚地看到变化。 (或管理一个包含数百个条目的.gitignore)真是太痛苦了。

大项目...... 25个以上的模块,以及企业版中复制的100多个文件。许多软件包甚至在企业中都有额外的模块。

任何想法,还是我做得最好?

2 个答案:

答案 0 :(得分:3)

Git子模块允许你保持不相交的git项目,但在另一个项目中使用。在您的情况下它可能很方便,因为您可以在保持企业版本指向特定版本的开源工具的同时修改所需的开源工具。当您想要将企业升级到更新的提交时,这也很容易!

这是一个很好的resource

答案 1 :(得分:0)

您可以做的另一件事是将开源项目作为sepparate分支添加到您的git项目中。

然后,开源项目的开源git存储库将作为一组分支在您的git项目中表现出来。然后,您可以通过合并将其组合到项目中。

由于git是一个分布式版本系统,这很容易做到:

#Add the open source repo as a remote
git remote add -f open_source_git <url to open source git repo>
#Create a local branch to track the remote branch
git branch open_source_master open_source:master
# Combine the two projects
git merge open_source_master

open_source_master分支就在那里,因此您可以轻松地更新并跟踪自己的存储库中的开源代码库。