【问题标题】:How to revert the commits from git when CI build fails in VSTSVSTS 中 CI 构建失败时如何从 git 恢复提交
【发布时间】:2017-08-15 13:21:44
【问题描述】:

我正在尝试为 .NET Core 应用程序创建 CI/CD 管道。每当我们从本地提交更改时,它都会同步到远程存储库,然后触发 VSTS 中的 CI/CD 流程。如果由于某种原因构建失败(比如测试失败),它不应该从 git 存储库中恢复更改吗?请让我知道是否有办法做到这一点

【问题讨论】:

  • 如果你想恢复这次的提交,你可以使用git reset --hard HEAD~将分支重置回之前的提交,然后你可以使用git push -f强制推送到VSTS。从长远来看,您可以在对分支进行更改之前使用拉取请求来验证更改是否可以成功构建(如丹尼尔所说)。
  • Marina 感谢您的回答,我们如何将此命令添加到失败构建的末尾并再次重新触发>?

标签: git azure-devops azure-pipelines-build-task azure-pipelines-release-pipeline


【解决方案1】:

不,它不应该自动执行此操作。您的流程需要进行一些改进以支持该工作流程。

在目标分支上使用带有分支策略的拉取请求进行合并。分支策略可以强制执行 CI 要求。

您将创建一个分支,在分支中进行开发,将对 target 分支的更改集成到您的分支中,然后将您的分支推送到远程并打开一个 PR .如果您的构建失败,PR 会将构建排队并导致 PR 失败。然后,您可以进行更改以纠正分支上的问题,然后重复该过程。

【讨论】:

  • 非常感谢丹尼尔。但是功能分支呢?当开发人员尝试提交错误代码或测试失败的代码时,有没有办法防止签入功能分支:)
  • 把分支策略放在上面。
  • 他没有要求做拉取请求。公关可能是自动化的噩梦
  • @RıfatErdemSahin 他要求一种方法来防止错误的更改合并到分支中。这是拉取请求和分支策略的确切用例。
  • @RıfatErdemSahin 我希望能更深入地解释一下您正在做的自动化受到拉取请求的阻碍。我曾与很多公司合作过,但我从未听过有人说拉取请求会导致自动化问题。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-06-28
  • 1970-01-01
  • 2019-06-15
相关资源
最近更新 更多