1

我有一个有趣的问题,我似乎找不到足够简单的答案。我有 3 个跟踪分支:master, staging, production. Master 是我使用并合并更改的主要代码。登台与我的 heroku 登台服务器设置相同,生产与登台相同。

在网上阅读了一番之后(我的书签放错了 beanstalk 文章),处理更改的一个好方法是从 master 分支,在定期提交的同时进行一大堆更改。然后这个特性分支被合并到 master 中,在我的开发机器上进行测试。

然后是棘手的一点,特性分支应该合并到暂存分支,然后被推送到heroku。如果分段测试成功,我也想将功能分支合并到生产中。

很简单。棘手的部分实际上是我在每个分支上的设置略有不同。Master 关闭了一些 SSL 东西等。Staging 有一些不同的证书等。Production 有一些 newrelic 跟踪等。

做一个git merge似乎一直覆盖我的设置。这是一种痛苦。我一直在挑选或git checkout <file list>合并个人更改。有没有办法:“将功能分支中的所有提交(变更集)合并到暂存分支中”,而不带上所有其他东西?

4

1 回答 1

1

如果您选择cherry-pick 路线,则可以使用git-extract-patches, 如果您有良好的提交消息(即您可以解析的提交消息以选择要导出的提交)。

请注意,cherry-picking 有一些缺点(重复和功能依赖),但如果您不合并回Stagingfeature-branch也可以。

另请注意,对于在分支之间变化的单个文件,内容过滤器驱动程序也可以是另一种解决方案(避免任何合并问题)。
参见示例“不同分支中相同配置文件的不同版本”。

于 2012-11-26T11:39:38.337 回答