Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/249.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/git/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 使用git维护不同版本webapp的工作流?_Php_Git_Cakephp - Fatal编程技术网

Php 使用git维护不同版本webapp的工作流?

Php 使用git维护不同版本webapp的工作流?,php,git,cakephp,Php,Git,Cakephp,在我的公司,我们使用git已经有几个月了(我们对此感到高兴),但我们仍然没有完全100%地使用git 我们的主要产品是一个网站,我们提供不同的语言(前端+管理后端)。其中一些网站提供了其他网站不应提供的功能(例如,需要在给定表单中填写的字段类型、不同的验证规则集等) 由于这些差异非常小,我们现在使用一个配置文件来确定网站是否应该使用特定的元素。但我想,当网站之间的差异越来越大时,这将导致问题 我想使用不同的分支会使维护更容易,但是如何使用一个共享的核心来维护不同的分支呢?我们还没有使用像Capi

在我的公司,我们使用git已经有几个月了(我们对此感到高兴),但我们仍然没有完全100%地使用git

我们的主要产品是一个网站,我们提供不同的语言(前端+管理后端)。其中一些网站提供了其他网站不应提供的功能(例如,需要在给定表单中填写的字段类型、不同的验证规则集等)

由于这些差异非常小,我们现在使用一个配置文件来确定网站是否应该使用特定的元素。但我想,当网站之间的差异越来越大时,这将导致问题

我想使用不同的分支会使维护更容易,但是如何使用一个共享的核心来维护不同的分支呢?我们还没有使用像Capistrano这样的部署工具(但正计划这样做),所以目前不可能从master到所有不同分支进行无休止的手动挑选

那么,在这种情况下,分支机构如何帮助我们呢

master
|
- english
|
- german 
|
- french

(澄清一下:这不是关于l10n/i18n,而是关于在分支之间共享核心功能)

其他人也尝试过,并说“

听起来你想使用子模块。这将允许您将所有共享功能保留为一个存储库,并将各个站点保留为其自己的存储库,以跟踪共享子模块中的更改。很多不错的(虽然有点简洁,与git文档一样),包括一个网络广播

从链接页面:

Git的子模块支持允许 要包含的存储库,如 子目录,一个 外部项目。子模块维护 他们自己的身份;子模块 支持只存储子模块 存储库位置和提交ID,因此 其他克隆 包含项目(“超级项目”) 可以同时轻松克隆所有子模块 同样的修订。部分退房 超级项目的目标是可能的:你 可以告诉Git克隆无、部分或 所有子模块

编辑:
如果您想保留分支结构,我想您可以创建一个钩子脚本(in.git/hooks/),该脚本检查每个特定于语言的分支,并在您提交到该分支时合并来自共享分支的最新提交。因此,您有一个共享分支,每种语言有一个分支,您基本上会对共享分支进行提交,它们会自动合并到其他语言中。我认为这听起来不是一个好的解决方案,而且还没有尝试过。如果您想尝试一下,请查找有关挂钩的信息。我认为子模块更自然。

这看起来很有趣,谢谢。但我想在使用分支轻松更新共享代码时没有办法?