git merge only changeset

时间:2012-11-26 11:05:07

标签: git

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

在浏览互联网之后(将我的书签错误地放到了beanstalk文章中),处理更改的一个好方法是从master分支,在定期提交时做一大堆更改。然后将此功能分支合并到master中,并在我的开发机器上进行测试。

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

足够简单。棘手的部分实际上是我在每个分支上有不同的设置。 Master有一些关闭SSL的东西等。暂存有一些不同的证书等。生产有一些新的跟踪等。

执行git merge似乎始终覆盖我的设置。这是一种痛苦。我一直在挑选或git checkout <file list>合并个人变化。有没有办法:“将所有提交(更改集)从功能分支合并到Staging分支”,而不会带来所有其他内容?

1 个答案:

答案 0 :(得分:1)

如果你选择了路径,你可以使用git-extract-patches,如果你有一个好的提交消息(即你可以解析一个提交消息,以便选择导出提交)。

请注意,挑选樱桃有一些缺点(duplication and functional dependencies),但如果你没有将Staging合并回feature-branch,那就没关系了。

另请注意,对于在分支之间变换的单个文件,内容过滤器驱动程序也可以是另一种解决方案(避免任何合并问题)。
请参阅示例“Different versions of the same configuration file in different branches”。