git - GIT 中的 CI : how to revert multiple commits of a feature

标签 git continuous-integration

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

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

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

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

最佳答案

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

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

当您最终准备好打包版本时,您将仔细 merge 所需的功能并构建和测试该版本分支。

关于git - GIT 中的 CI : how to revert multiple commits of a feature,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28903882/

相关文章:

git - 如何从 Git 主分支中间删除一些提交?

Git 推送到非裸仓库,保存当前工作树

github - github.event 的简单回显在 Github Actions 中失败

azure - 将 Web 应用程序部署到 Azure 应用服务 - 使用资源管理器连接

c# - 在构建期间使用 NDepend 生成差异报告

Git 将 merge 的提交一分为二

git - 将 git 子模块 merge 到主存储库

Git:减小 `.git/lfs/`的大小

centos - 带有 Jenkins CI 安装的 Puppet Learning VM

javascript - 在每次 Git 推送上测试 JavaScript 代码(针对 Web 前端)的最简单方法