我想在我的游戏和我的游戏编辑器之间共享我的模型。游戏是在cocos2d框架下开发的,包含c++和Objective-C代码。编辑器是在Qt (在Windows7ATM上开发)中完成的。这个模型是纯C++的(没有特定于平台的东西)。
我在工作中遇到过类似的问题,我通过将共享代码导出为项目并为其创建存储库来解决它。然后我会将其添加为子项目,并根据需要对其进行更新,尽管我不确定是否可以向Qt添加子项目。它实际上就像一个静态库存储库,是编辑器和游戏存储库的子存储库,但我不确定如何做到这一点。
发布于 2013-07-09 13:56:31
听起来你要找的是Git submodules (重点是我的):
在处理一个项目时,您需要在其中使用另一个项目,这种情况经常发生。可能是第三方开发的库,也可能是您单独开发并在多个父项目中使用的库。在这些场景中会出现一个常见的问题:您希望能够将这两个项目视为独立的项目,但仍然可以在另一个项目中使用另一个项目……
Git使用子模块解决了这个问题。Git子模块允许您将一个存储库保留为另一个Git存储库的子目录。这使您可以将另一个存储库克隆到您的项目中,并使提交保持独立的。
您还可以阅读有关submodules on the Git docs的更多信息。
发布于 2013-07-09 22:03:55
Subtree merging是另一种选择。
有关git-subtree脚本背后的详细信息,请参阅this和this (按硬核程度递增的顺序)。
引用后一本手册:
在某些情况下,您希望在项目中包含来自独立开发的项目的内容。只要没有冲突的路径,你就可以从另一个项目中拉出。
有问题的情况是存在冲突的文件。潜在的候选文件是Makefiles和其他标准文件名。您可以合并这些文件,但您可能不想这样做。这个问题的一个更好的解决方案是将项目合并为它自己的子目录。递归合并策略不支持这一点,因此仅拉不起作用。
您需要的是子树合并策略,它可以在这种情况下帮助您。
git-subtree脚本(在其相对较新的版本中包含在Git的contrib部分中)促进了子树合并。
https://stackoverflow.com/questions/17540881
复制相似问题