【问题标题】:How do I manage two very similar websites with single Git repository?如何使用单个 Git 存储库管理两个非常相似的网站?
【发布时间】:2013-11-18 05:56:00
【问题描述】:

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

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

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

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

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

【问题讨论】:

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


    【解决方案1】:

    你可以:

    • 将所有数据保存在一个分支中,并让包含在 .gitignore 中的特殊配置文件来决定它是哪个站点。
    • 将通用代码保存在“主”存储库中,并将不同的内容保存在将此存储库作为子模块引用的另外两个存储库中。
    • 将所有配置和内容移动到特定于每个部署位置的数据库中。
    • 像现在一样继续工作。

    但是,我认为没有理想的选择。我对这种情况有一些个人经验,尽管它与您的不同——我从事编译项目。我们有 iPhone 版本、iPad 版本等,并使用第一种方法。我们将所有代码保存在一个 repo 和一个分支中(好吧,我们使用分支,但用于其他需要)。我们有一个特殊的工具可以改变项目配置目标;但是,所有文件都保存在 repo 中,如果有人更改构建目标并提交所有更改,它会影响我们所有人。但是,由于更改构建大约需要 20-40 秒,因此并没有什么不便。

    【讨论】:

    • 嗨,你能详细说明一下子模块吗?在过去的 15 分钟里,我一直在谷歌上搜索这些东西,我能找到的所有示例都说明子模块用于使用 3rd 方存储库。对我来说,分支的问题是它很容易出错。
    • @user1848605 好吧,使用 3rd 方库是子模块的主要目的。但是,如果您的代码以这样一种方式编写,即代码的“公共”部分可以被视为 3rd 方库,那么它可能是您的理想选择。
    猜你喜欢
    • 1970-01-01
    • 2014-10-02
    • 2014-04-22
    • 2014-11-11
    • 1970-01-01
    • 1970-01-01
    • 2012-12-31
    • 2011-12-20
    • 1970-01-01
    相关资源
    最近更新 更多