我在Gerrit中有一个Git存储库,有两个分支:master和production。生产分支与master不同,只需一次提交,即重写配置文件。未来分支可能会有很大的不同,但它总是会以很少的提交形式进行非常孤立的变化。
我在Gerrit中设置了生产分支,我可以提交补丁以及所有这些。我所遇到的问题是让生产与主人保持同步。我尝试使用git merge --squash,但即使如此,我也遇到了大量的合并冲突。
这样做的正确公式是什么?我想避免两次向Gerrit提交每个补丁。我是否需要在Gerrit的背后投入以获得我想要的东西?
答案 0 :(得分:2)
我会强烈重新考虑拥有一个生产部门。它只会导致心痛和持续的维护问题。
相反,您应该在主分支中拥有配置文件的生产和开发版本。您的代码将根据环境变量选择在运行时使用哪一个。
通过这种方式,您可以构建一个工件,在开发环境中对其进行测试,一旦您满意,您将向生产环境发布完全相同的工件。
答案 1 :(得分:0)
根据对您的问题的理解,您希望将所需的更改(已提交到生产分支)合并到主数据库,以使您的主数据保持最新。
您是否尝试过从生产分支到主分支的挑选。如果没有,请尝试一次。希望它能起作用。
假设您在生产分支中提交的补丁很少。 尝试使用以下命令来挑选这些补丁来掌握。
git cherry-pick commit1..commit2
如果发生更多合并冲突,你也可以逐个挑选。
git cherry-pick commit1
试一试!!