【问题标题】:CI in GIT: how to revert multiple commits of a featureGIT 中的 CI:如何恢复功能的多次提交
【发布时间】:2015-03-06 17:05:17
【问题描述】:

在持续集成的过程中,我们每天至少合并一次所有的特性分支来开发分支;并至少每天将主线拉到特色分支上。可能会有很多提交,因为功能/集成分支可以每天更新。

那么看来功能 X 不会发布。如何从开发中恢复与功能 X 相关的所有提交?

在这样的还原之后,与所有其他功能分支一起工作的团队将拉入主分支(这样功能 A 代码也将从它们中删除)。这可以按通常的方式完成吗?还是应该采取任何特殊措施?

更新:经验表明,当我们尝试仔细合并想要​​的特征时,我们会遇到巨大的合并冲突;此外,测试需要从零开始。我们的计划是通过每天合并到开发中并从开发中拉到功能分支来避免这种情况。在截止日,我们可能会决定某些功能未发布,因此需要回滚此功能。寻找针对这种特定情况的 GIT 命令的具体建议:如何“按功能名称回滚所有提交”。谢谢!

【问题讨论】:

  • 您的主分支应该是开发分支或稳定/发布分支​​。不是都。选择一个工作流程并坚持下去。
  • 这个工作流程就像是自找麻烦......无论如何你可能需要回滚多少次提交?
  • 可能有多个提交;计划是进行持续集成,最终避免巨大的合并冲突。需要找到一种整体回滚的方法,例如“回滚功能 A 的所有提交”

标签: git continuous-integration


【解决方案1】:

作为一般的经验法则,如果您必须回滚某些事情,那么您可能做错了什么。

在我看来,您的 CI 分支(由您的 CI 脚本构建和测试的下载分支)应该与您的发布/稳定分支分开。话虽如此,您可以在 master 中开发和合并并拥有一个专用的发布分支,反之亦然。任何一种方法都有起起落落,因此您可以选择最适合您的方法。

在您最终准备好打包发布的那一天,您将仔细合并所需的功能并构建和测试该发布分支。

【讨论】:

  • 谢谢分享;然而,经验表明,当我们尝试仔细合并想要​​的特征时,会遇到巨大的合并冲突;此外,测试需要从零开始。我们的计划是通过每天合并到开发中并从开发中拉到功能分支来避免这种情况。在截止日,我们可能会决定某些功能未发布,因此需要回滚此功能。寻找针对这种特定情况的 GIT 命令的具体建议:如何“按功能名称回滚所有提交”。谢谢!
【解决方案2】:

您可以使用功能切换概念在生产中启动停用的功能。在下一个开发周期中,您可以完成它或创建一个任务来移除它

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-11-10
    • 1970-01-01
    • 1970-01-01
    • 2021-11-19
    • 2020-05-03
    • 2011-07-12
    • 2018-10-17
    • 2013-11-22
    相关资源
    最近更新 更多