我是一名有用的助手,能够翻译文本。
那个代码库的结构由于某些原因无法更改。
如果一个项目想要使用平台并添加一些功能,则在
目前,我们只是从
首先我想到的是子模块:将
有没有更好的方法来组织我的仓库,以便:
< p > 编辑1:高度耦合的git子模块涵盖了我所处的情况:紧密耦合的东西,只有我知道比绝对基础更多的git知识,“大多数开发人员只有非常肤浅的git知识”。完美匹配!
< p > < em >编辑2:虽然Michael的答案看起来很有前途,但我认为它有点太复杂了。我正在寻找一些非常简单的东西,不需要那么多的交互。
我面临以下问题,但没有答案:
我们有一个从SVN repo克隆而来的repo。 存储在该repo中的项目类似于各种项目使用的平台软件。 该repo的结构如下:
platform
|- core
|- additional
那个代码库的结构由于某些原因无法更改。
core
和 additional
都包含作为该 platform
一部分的数据。如果一个项目想要使用平台并添加一些功能,则在
additional
下创建一个新文件夹来包含源代码,并将该功能的头文件添加到 additional/includes
中。目前,我们只是从
master
分支出新项目,所有内容都放在同一个代码库中。这导致了分支膨胀,我的(中央)代码库越来越大,因为所有单个项目中进行的提交都会进入中央代码库(我的同事们习惯了 SVN,所以他们几乎每次提交后都会执行 push
-- 只是为了确保...)。首先我想到的是子模块:将
platform
作为一个子模块保留在超级项目(称为super
)下,然后进入super/platform/additional/mystuff
,创建源文件并将其添加到super
中。但显然这行不通,因为文件位于platform
子模块内。有没有更好的方法来组织我的仓库,以便:
- 平台用户能够从中央仓库更新其工作副本
- 并且平台用户能够将错误修复应用到
platform
的仓库中 - 并且使用
platform
的项目不会破坏platform
的仓库?
< p > 编辑1:高度耦合的git子模块涵盖了我所处的情况:紧密耦合的东西,只有我知道比绝对基础更多的git知识,“大多数开发人员只有非常肤浅的git知识”。完美匹配!
< p > < em >编辑2:虽然Michael的答案看起来很有前途,但我认为它有点太复杂了。我正在寻找一些非常简单的东西,不需要那么多的交互。
master
和central
,以及它们之间的合并。此外,git push
和git pull
在两个分支中都可以无需任何参数地使用。我认为如果你想保持你的中央仓库干净,你必须使用至少两个分支。 - Michaelgit clone /path/to/platform
,创建一个新分支,例如_project-XYZ_,并使用git push origin project-XYZ
将其推送到中央repo。这样也可以保持_central_的_master分支干净,但我认为它不太灵活。 - Michael