如何使用单个Git存储库管理两个非常相似的网站?

时间:2013-11-06 19:55:45

标签: git version-control web branch git-branch

我的网站有两个版本 - 语言版本。它们作为不同的网站在不同的服务器上运行,大多数只在文本和一些配置图像等方面有所不同,但可以预期它们在未来的功能也会有所不同。

由于这两个网站到目前为止都具有确切的基础功能(但将来可能会有所不同),我希望能够

A)同时改变他们两个。 B)仅更改网站的第一个版本。 C)仅对网站的第二版进行更改。

现在最好的办法是什么?我选择了git branches - 我有一个MASTER分支然后分支A和分支B.如果我想对两个网站进行更改,我在MASTER上执行它们然后将MASTER合并到A和B中。如果我想要进行单独的更改在A上,我只在那里做。

我的工作流程到目前为止是否正确?什么是更好的方法?我问这个是因为我做了一些合并错误并且反转了一些提交,现在项目很乱。必须有一个更好的解决方案。

1 个答案:

答案 0 :(得分:2)

你可以:

  • 将所有数据保存在一个分支中,让.gitignore中包含的特殊配置文件决定它是哪个站点。
  • 将公共代码保存在“主”存储库中,并将其他两个存储库中的不同内容保存为子存储库。
  • 将所有配置和内容移动到特定于每个部署位置的数据库中。
  • 继续现在的工作。
但是,我不认为有一个理想的选择。我对这种情况有一些个人经验,虽然它与你的不同 - 我在编译项目上工作。我们有iPhone构建,iPad构建等,并使用第一种方法。我们将所有代码保存在一个repo和一个分支中(好吧,我们使用分支,但是用于其他需求)。我们有一个特殊的工具可以改变项目配置目标;但是,所有文件都保存在repo中,如果有人更改了构建目标并提交了所有更改,则会影响我们所有人。但是,由于更改构建大约需要20-40秒,因此不会带来任何不便。