2016-07-15 49 views
0

我的团队正在开发一个带有大型第三方SDK的Unity项目。有一个新的预览SDK,它允许我们针对一个只有两个人有权访问的新设备。我创建了一个新的分支'new_sdk',并将该SDK集成到了这个新设备中。如何在GIT中维护第三方库的多个版本?

现在前进我想继续用旧的SDK,并为新的SDK中的new_sdk分公司原分公司,但在其他合并分支之间的SDK之外的变化。团队中的其他开发人员只能访问旧设备,因此我们必须这样做。

一种解决方案是通过向的.gitignore排除源控制的库文件夹,然后手工将它们复制时要切换的枝叶。但那不好。

我开始寻找到.gitattributes并从这篇文章合并司机: https://medium.com/@porteneuve/how-to-make-git-preserve-specific-files-while-merging-18c92343826b#.m58m7t1qp 但它看起来很复杂,我无法得到它的时候我也跟着上一个测试版本库的文章中的步骤工作。

有没有一种方法,使合并司机工作,做我想做什么?

有没有更好的方法?

+0

请参阅http://stackoverflow.com/questions/1777854/git-submodules-specify-a-branch-tag了解如何在git中指定子模块branch/tag。 – gzh

回答

1

你应该让你的SDK文件夹你的主要项目库的子模块。

基本上,你创建一个新的存储库,并把你的SDK在那里,只有文件夹,没有项目的文件夹。

然后你进入你的主要项目在Git的水平和使用子模块的命令:

https://git-scm.com/book/en/v2/Git-Tools-Submodules

在这一点上,你将添加SDK但主要项目将无法跟踪。推送到您的主项目存储库和SDK将显示为灰色文件夹,基本上是指向其他存储库的指针。

现在,您可以独立推送您的主项目和SDK。

+0

我会在早上试试,希望能回来,并将其标记为已接受的答案。谢谢。 – ThisGuy

0

git的子模块的选项,以达到你所期待的一个。我在github上编写了一个广泛的文档和一个示例项目,地址为https://github.com/abdes/submodule-docker-dev-workflow,可以帮助您开始并了解开发工作流程中与git子模块相关的常见场景。

子模块的好处是容器回购和子模块回购是完全独立的。您可以自由分支您的容器项目,而无需分支子模块。

相关问题