我有两个紧密相关的项目(A和B),它们共享一些源代码(S)。两者将同时发布,发布的版本应始终使用相同版本的共享代码。共享代码S将经常合理地更改。
因此,它有时看起来像这样:
用git(和/或某些使用git的工具)处理此问题的最佳方法是什么?
这是我的担忧:
据我了解,规范的答案之一是“use git submodule”。但是,我阅读了有关此方法的一些criticism。我觉得它是专为很少更改的共享库设计的。
我读过的另一种方法是使用git subtree
还有一些不太受欢迎的方法:Repo,GitSlave
处理此类代码共享的最佳方法是什么?
最佳答案
一个非常简单的解决方案是使用三个存储库:A,B和S。项目存储库A和B将在其Makefile中进行检查,以验证开发人员是否正在使用推送到存储库的最新代码。
check:
git fetch /path/to/S master:tip
git branch --contains tip | grep -q master
如果开发人员具有共享存储库的旧版本,则第二行的返回值将为非零。这将以错误中止编译。然后,开发人员可以手动 pull 出存储库以继续。
除了检查S的主分支之外,您还可以检查其他一些分支,这些分支被定义为始终是开发人员应使用的分支。
关于git - 在git中的两个项目之间共享代码,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/14445101/