4

我正在使用 Git 存储库来存储与我正在开发的网站相关的所有内容。该存储库包含与该站点相关的所有文件,包括文档、模型、原始分层图像等,以及我放在www子目录中的 Web 根目录。

我现在想开始将我选择使用的 CMS 与项目的其余部分集成;CMS 是一个开源项目,它也由 Git 管理(如果重要的话,托管在 GitHub 上)。显然 CMS 需要在www子目录中,但它不会是唯一的东西 - 会有 CSS 文件、图像、CMS 模板等等等。因此,我选择了使用子树合并策略将外部项目添加到我的存储库。因为我可能在某个时候想要修改原始项目,并回馈更改,所以我从 GitHub 克隆了 CMS 存储库,并从我的克隆中完成了子树合并。

问题是,外部项目(即CMS)有我想要包含的子模块。确保子模块集成到主项目中的最佳方法是什么?我是否必须为每个子模块进行子树合并?

我不太可能想要修改子模块,但我可能会修改一两个。

4

2 回答 2

5

进行子树合并(以及随后再次拆分,以便您可以向上游提交补丁)的一种更简单的方法是尝试实验性git subtree工具。

于 2009-08-20T17:56:14.910 回答
1

Git子模块包含另一个项目的特定签出,并且不会自动保持最新。因此,处理 CMS 子模块的最简单方法可能是跟踪它们作为远程分支来自的存储库。这样您就可以随时了解子模块来自的项目的更改。

使用子树合并使得将更改提交回 CMS 项目变得更加复杂(也许挑剔是正确的词);如果您希望提交许多更改,也许可以编写脚本。

于 2009-03-14T17:01:42.287 回答