网站实例的 Git 分支?

网站实例的 Git 分支?

我正在几个网站上工作,除了图像和 CSS 或设置的一些变化外,两个网站都需要几乎相同的代码。

我刚刚读完Pro Git 书籍的分支章节我有点困惑,如果分支不是解决这个问题的最佳方案,那么分叉呢?

我的意思是,我们有代码实例 A 和 B,A 和 B 之间的区别在于 css 颜色、url、api 密钥等方面,但大部分代码是相同的,所以我可以用什么方式来处理这个问题,我需要 A 中的一些代码,然后“修补”它以获得 B,但我不确定如何进行不覆盖图像的合并……

无论如何,如果是一个分支或一个分叉,我该如何合并 A 中的新功能而不丢失 B 中的更改?

答案1

这有点棘手,恐怕没有唯一的“正确”答案。我同意为 A 和 B 维护单独的分支不是 git 的正确用法。

你的第一个选择是简单地从一个分支中分叉。当然,缺点是你现在必须维护两个独立的代码库。太丑了。

第二种选择是只分叉差异部分(例如图片和 css 目录)。这样你就会有 3 个 git 存储库:代码(只需维护一个代码库,太棒了!)、A 的图片/css/等,以及 B 的图片/css/等。这种方法的缺点是它使部署变得复杂,特别是如果你必须同时部署代码和样式更改。

或者,您当然可以滥用 git 来维护一个存储库,其中 A 和 B 作为单独的分支。不,这不是理想的,但严格来说它是可行的。然而,与第一个建议(完全分叉 A 和 B)相比,这可以说是一个更混乱的解决方案。

除了你(和你的团队)没有人能告诉你哪种方法才是适合你情况的“正确”方法。不过,我祝你好运!

答案2

为什么不创建一个包含共同内容的“模板”分支并将其合并到每个网站的分支中呢?任何自定义内容都不应出现在模板分支中,理想情况下,自定义内容应隔离到特殊文件中,尽管这不是绝对必要的。如果您可以隔离到文件级别,请 .gitignore 模板分支上的自定义文件以确保安全。

当你做出更改时,请在模板上进行更改并依次合并到每个分支。每个网站都应将更改应用到模板并保留其定制工作。

相关内容