在git中管理持久性代码行的好方法是什么?

时间:2012-01-17 20:12:14

标签: git version-control merge git-branch

我为每个项目维护三个代码行:'master'用于最新开发,'test'用于稳定,'prod'用于实时代码,以及任何功能分支。

我想定期将一个分支的所有变化反映到另一个分支。当然,将主人推入测试以开始稳定新版本。或者将测试推入prod以使稳定版本生效。而且,将错误修正从测试带入master或甚至有时从prod到test(在紧急修补程序的情况下)。还有一些特定于分支的更改,例如URL和密钥。 Git很精彩,我无法想象它在其他系统上节省了我的时间。但我不确定如何在不遇到麻烦的情况下做到这一点。

删除并重新创建这三个“主要”分支是不切实际的,因为它们支持云环境,因为我们已经分发了开发人员。类似地,重新定位是有问题的,因为每个分支都是共享的,并且从每个分支推送更改。我一直在向两个方向合并,就像我对Perforce等其他版本控制系统所做的那样:将测试中的修复合并到master中,然后从master到test的新开发。但这导致了我不完全理解的严重问题。

您如何建议管理这些分支机构,以便将每个分支机构的更改反映到其他分支机构中?

提前感谢您的想法!

1 个答案:

答案 0 :(得分:2)

我从未发现这种“固定命名约定”适用于集成分支和prod分支,特别是在首次投入生产之后。

我总是倾向于在我正在构建的当前版本之后命名这两个分支(test_1.0prod_1.0,或test_2.3prod_2.3,依此类推。)<登记/> 这将限制合并的范围(因为它们显然是针对特定版本的,并且我确信在这些分支中我没有在另一个版本中错误地混合了一些开发)。

如果您只想拥有一个“当前开发”分支(在您的情况下为master),则必须确保在每个新版本开始时重置所述master分支。
从prod_x.y到merge --theirs的{​​{1}}可以提供帮助,但master不存在。有ways to simulate such a merge though