在git中存储和生产分支之间存储差异的位置?

时间:2012-01-25 00:59:35

标签: git deployment branch branching-and-merging fabric

我有一个我从git存储库管理的项目。我们使用progit分支策略(如接受的答案中所述,此处:Git branch strategy for small dev team),其中一个分支是生产分支,另一个分支是开发/测试分支。我们使用fabric部署代码。

当我们准备使用git创建新的生产版本时,我们将开发/测试分支合并到生产分支中,然后使用fabric部署生产分支。问题是开发和生产之间存在代码差异 - 一些徽标更改,一些不同的数据库主机/凭据等等。我一直在保存包含差异的.patch文件,并且在部署生产环境时使用结构应用补丁,但这不能很好地工作。特别是,如果修补程序周围的某些代码发生了变化,则完全失败 - 修补程序无法应用,我的部署将中止。

我一直在想我是否应该直接将所有更改都应用到生产分支?有什么缺点?

我关注的一个特定用例是我们是否需要制作修补程序。我们目前通过从生产环境分支,进行更改,然后将该分支合并回开发和生产来实现这一目标。如果生产分支与开发分支不同,那么当修补程序合并到开发中时,这些更改是否会被拉入开发分支?

1 个答案:

答案 0 :(得分:0)

我也在dev分支和生产分支中有这个请求。我不认为git merge -s我们的**是一个很好的解决方案,因为它可以确保后来的一个合并不会被覆盖,之后它将导致开发和生产之间的父关系。你必须每次使用git merge -s our **,这会使日志图形变得非常丑陋和毫无意义。

所以我建议使用

  

git cherry-pick

。这可以确保您想要的内容。