我有一个有趣的问题,我似乎无法找到一个简单的答案。我有3个跟踪分支:master, staging, production
。 Master是我玩的主要代码,并将更改合并到。暂存与我的heroku登台服务器设置相同,生产与暂存相同。
在浏览互联网之后(将我的书签错误地放到了beanstalk文章中),处理更改的一个好方法是从master分支,在定期提交时做一大堆更改。然后将此功能分支合并到master中,并在我的开发机器上进行测试。
然后是棘手的一点,功能分支应该合并到暂存分支,然后被推送到heroku。如果暂存测试成功,我也希望将功能分支合并到生产中。
足够简单。棘手的部分实际上是我在每个分支上有不同的设置。 Master有一些关闭SSL的东西等。暂存有一些不同的证书等。生产有一些新的跟踪等。
执行git merge
似乎始终覆盖我的设置。这是一种痛苦。我一直在挑选或git checkout <file list>
合并个人变化。有没有办法:“将所有提交(更改集)从功能分支合并到Staging分支”,而不会带来所有其他内容?
答案 0 :(得分:1)
如果你选择了路径,你可以使用git-extract-patches
,如果你有一个好的提交消息(即你可以解析一个提交消息,以便选择导出提交)。
请注意,挑选樱桃有一些缺点(duplication and functional dependencies),但如果你没有将Staging
合并回feature-branch
,那就没关系了。
另请注意,对于在分支之间变换的单个文件,内容过滤器驱动程序也可以是另一种解决方案(避免任何合并问题)。
请参阅示例“Different versions of the same configuration file in different branches”。