git philosophy/strategy 用于分隔项目
git philosophy/strategy for compartmentalized projects
我和另外两个人在一个位于 git-repo 中的项目上工作。
项目的布局如下所示:
./
--DataSheets
--Electrical
--FW
--Mechancial
一个人从事机械方面的工作
我在 FW 工作
我和另一个人从事电气工作
每个人都在数据表上工作
我相信每个人都在某个时候看到过这个:http://nvie.com/posts/a-successful-git-branching-model/,到目前为止,这就是我一直在尝试使用的...
我每个都有一个分支,每次更改我都会从它们中创建子分支...
一旦整个项目达到一个良好的停止点,我会尝试将所有内容更新并将其合并到开发中......有一天,如果有任何东西离开实验室,它会被合并到 master 中,但那还没有发生了。
我认为这是一个很好的方法,但是在尝试维护它 6 个月之后,我遇到了一些我 运行 一直想解决的问题:
我觉得在保持每个分支相对于其他分支最新时有很多开销......例如,如果我更改 Electrical 文件夹,其中有 PCB/schematic 东西,它几乎默认情况下会以某种方式影响 FW。这意味着在处理 FW 目录时,我需要绝对确保 FW 目录已与 electrical 目录一起重新定位。这感觉有点愚蠢,因为 FW 分支中的任何更改都不应影响电气分支,反之亦然,但不记住这一点可能会导致使用过时的硬件参考文档开发新的固件。
我已经阅读了一些有关子模块的资料,这些内容听起来确实适用于这种情况。这是一条值得考虑的道路吗?同样,整个项目都在一个 repo 中,因为实际上一切都相互关联,但上面列出的所有 4 个元素在开发工作流程中都是独立的,这正是我真正依赖 git 的原因在这段时间里。
This feels kind of foolish, since no changes in the FW branch should affect the Electrical branch and vice-versa
恕我直言,这是不正确的。虽然实际上它们在技术上可能不会相互影响,但其中任何一个的变化都可能会给整个系统带来问题。这反映在您的其他陈述中:
If I change the Electrical folder, that has PCB/schematic stuff in it, it almost by default will affect FW in some way
所以我的建议是始终让每个人都从事特定的系统更改,以便在 相同的 项目(子)分支中工作。通过这种方式,您可以确保所有组件都同步,并且您可以在将任何组件合并回主线之前在系统级别验证更改。
如果计划使用 master
作为您的 releasing/shipping 车辆,我还建议不要让 dev
分支成为 master
分支的子分支。在 How to get rid of develop branch for simplified Git flow
查看我的推理
我和另外两个人在一个位于 git-repo 中的项目上工作。
项目的布局如下所示:
./
--DataSheets
--Electrical
--FW
--Mechancial
一个人从事机械方面的工作 我在 FW 工作 我和另一个人从事电气工作 每个人都在数据表上工作
我相信每个人都在某个时候看到过这个:http://nvie.com/posts/a-successful-git-branching-model/,到目前为止,这就是我一直在尝试使用的...
我每个都有一个分支,每次更改我都会从它们中创建子分支... 一旦整个项目达到一个良好的停止点,我会尝试将所有内容更新并将其合并到开发中......有一天,如果有任何东西离开实验室,它会被合并到 master 中,但那还没有发生了。
我认为这是一个很好的方法,但是在尝试维护它 6 个月之后,我遇到了一些我 运行 一直想解决的问题:
我觉得在保持每个分支相对于其他分支最新时有很多开销......例如,如果我更改 Electrical 文件夹,其中有 PCB/schematic 东西,它几乎默认情况下会以某种方式影响 FW。这意味着在处理 FW 目录时,我需要绝对确保 FW 目录已与 electrical 目录一起重新定位。这感觉有点愚蠢,因为 FW 分支中的任何更改都不应影响电气分支,反之亦然,但不记住这一点可能会导致使用过时的硬件参考文档开发新的固件。
我已经阅读了一些有关子模块的资料,这些内容听起来确实适用于这种情况。这是一条值得考虑的道路吗?同样,整个项目都在一个 repo 中,因为实际上一切都相互关联,但上面列出的所有 4 个元素在开发工作流程中都是独立的,这正是我真正依赖 git 的原因在这段时间里。
This feels kind of foolish, since no changes in the FW branch should affect the Electrical branch and vice-versa
恕我直言,这是不正确的。虽然实际上它们在技术上可能不会相互影响,但其中任何一个的变化都可能会给整个系统带来问题。这反映在您的其他陈述中:
If I change the Electrical folder, that has PCB/schematic stuff in it, it almost by default will affect FW in some way
所以我的建议是始终让每个人都从事特定的系统更改,以便在 相同的 项目(子)分支中工作。通过这种方式,您可以确保所有组件都同步,并且您可以在将任何组件合并回主线之前在系统级别验证更改。
如果计划使用 master
作为您的 releasing/shipping 车辆,我还建议不要让 dev
分支成为 master
分支的子分支。在 How to get rid of develop branch for simplified Git flow