【问题标题】:Git to mark a branch-specific commit and prevent from mergingGit 标记特定于分支的提交并防止合并
【发布时间】:2012-04-18 16:37:29
【问题描述】:

我的项目有两个主要分支 - master 用于网络应用的“生产”版本,分支 X 用于应用的“测试”版本。

我需要在这两个分支中保留与部署设置、数据库配置、Google Web 分析 ID 等相关的一些代码调整,并防止它们在 master 上发生 git merge Xgit merge master 时被合并在分支 X 上执行。

是否有可靠的方法来做到这一点,即将一些提交标记为“仅用于此分支”?

【问题讨论】:

    标签: git git-branch branching-and-merging


    【解决方案1】:

    简单的答案:不简单。

    相反,您可以:

    • Cherry 选择每个提交,不包括标记的提交(例如提交消息中的关键字)
    • 在没有这些提交的情况下创建第二个分支,并定期将其与包含它们的分支合并。将“bad commits free”分支与 master 和新分支合并。

    【讨论】:

    • 谢谢!那么我是否正确理解第二个选项我需要......让我们看看...... 6个分支?假设 M = Master 和 D = Development,D
    • 老实说,我更喜欢樱桃挑选的解决方案。它会简单得多。 wiki.koha-community.org/wiki/Using_Git_Cherry_Pick
    【解决方案2】:

    这并不理想,但我的一个项目中有类似的场景。我的解决方案是改为维护三个分支——master、devel 和 config。 config 分支从 devel 上的某个点分支,并且只包含配置内容(因此得名)。然后我可以按照你的指示在 master 和 devel 之间开发和合并,当我需要测试时,我使用 rebase 将 config 分支移到 devel 的尖端。

    这有点麻烦,尤其是如果您喜欢在 devel 上测试每个提交,而不仅仅是定期测试,但至少它是功能性的。

    【讨论】:

    • 是的,听起来好像有更多的分支是一种方式,但也许我想为 master 和 development 分别配置......谢谢!
    猜你喜欢
    • 1970-01-01
    • 2016-07-26
    • 2019-03-28
    • 2011-12-30
    • 1970-01-01
    • 1970-01-01
    • 2018-10-17
    • 2012-03-02
    • 2016-01-12
    相关资源
    最近更新 更多