【问题标题】:git merge only changeset仅 git 合并变更集
【发布时间】:2012-11-26 11:05:06
【问题描述】:

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

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

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

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

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

【问题讨论】:

    标签: git


    【解决方案1】:

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

    请注意,樱桃采摘有一些缺点(duplication and functional dependencies),但如果你不将Staging 合并回feature-branch,也可以。

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

    【讨论】:

    • 我可能会修改此脚本以尝试从单个分支中的所有提交中制作一个补丁文件,因为它已被分支。这是一个很好的起点。等了几天才能看到更多的答案。至少现在,我可以将分支名称放在前面的提交消息中。干杯!
    猜你喜欢
    • 2011-04-23
    • 2020-05-20
    • 1970-01-01
    • 2014-08-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多