在同一级别管理多个git存储库?

时间:2015-03-28 01:03:41

标签: git git-submodules

我无法想到我的用例的良好工作流程:

我有一个JS框架的存储库。

我想使用这个框架来创建一个应用程序,保持用git更新我的框架的能力。

实际上,git子模块可以工作,但我的框架文件(和我的应用程序文件)遍布我的目录树。

我尝试在我的app repo中添加一个指向我的框架repo的远程,以便从/向我的框架提取/推送提交,但如果我这样做,我会遇到一些冲突。例如,我在两个仓库中都没有相同名称的标签。而且,污染"污染"我的历史。

一个现实世界的例子: 说我有一个CakePHP网站。如何使用git更新CakePHP框架,同时使用git对我的网站进行版本控制?

理想情况下,我想从app repo推送到框架的提交(就像我使用子模块一样)。

(抱歉,我找不到这个问题的更好标题)

1 个答案:

答案 0 :(得分:3)

从软件工程的角度来看,这听起来不错。您的框架和您的网站表面上是两个不同的代码库(除非您的“框架”仅适用于此站点),因此它们应该位于不同的目录中,网站引用该框架的预构建版本。

如果你正在积极开发它们,它会涉及到一些来回切换,是的,但是对于那些出现在你身后的人来说,代码分离会更加清晰。

您可能希望look at using git hooks自动将框架中的更改提取到您的网站代码中。具体来说,post-commit hook可能很方便。

示例可能类似于:

#!/bin/bash

rsync -avz /path/to/framework/ /path/to/website/framework-folder