【发布时间】:2019-10-07 06:24:07
【问题描述】:
我正在尝试从头开始了解 git 挂钩和 Azure DevOp 管道。我需要了解两者之间的区别。为什么我们需要一个而不是另一个?我的测试环境是服务器上的 Unix 和 Azure DevOps 存储库。
【问题讨论】:
-
最大的区别是它们是不同的东西。你不能将机器人与苹果进行比较。
标签: git github gitlab azure-pipelines githooks
我正在尝试从头开始了解 git 挂钩和 Azure DevOp 管道。我需要了解两者之间的区别。为什么我们需要一个而不是另一个?我的测试环境是服务器上的 Unix 和 Azure DevOps 存储库。
【问题讨论】:
标签: git github gitlab azure-pipelines githooks
Git 挂钩主要设计为在一台机器上运行,或者是开发人员的机器,或者在某些情况下是远程服务器。是否可以在 Git 托管服务提供商上使用 Git 挂钩取决于提供商。 Azure Pipelines 是一个持续集成 (CI) 系统,可以构建、测试和部署您的代码。
如果您想在本地机器上执行一些简单的操作并且通常可以轻松绕过,Git 挂钩通常很有用,而 CI 系统被设计为在许多或所有提交上自动运行,并且可能跨各种平台。 CI 系统还可以安全地存储用于自动访问系统的机密,而您不希望每个开发人员都可以访问这些机密。
例如,如果您想将提交消息编辑为具有特定格式,这非常适合开发人员机器上的挂钩。但是,如果您想对所有拉取请求或自动化部署过程执行自动化、一致的测试,那最适合 CI 系统。一般来说,任何应该一致且可重复地完成的事情最好留给自动化,例如 CI 系统。
【讨论】:
简单来说,git hooks 就像数据库的触发器。它们响应 git 源代码存储库中发生的事件并根据这些事件执行脚本。就像在签入代码之前,在签入代码之后等等。Azure DevOps Pipelines 与 git hooks 无关。就像人们所说的:苹果和橙子。我不知道你在哪里让它们相互关联。 Git 是一个源代码存储库,Azure DevOps 支持 Git。 Azure DevOps 是一个平台,因此是 Azure/Azure DevOps 保护下的许多工具的组合。它的“管道”部分只是我们 DevOps 人员多年来一直在做的营销噱头。它只是一个从开发人员那里获取代码并通过编译代码、对其进行单元测试、打包、通过一系列自动化测试运行它、评估这些测试、通过各种环境、获得批准,并最终在某些最终环境中(通常是生产环境)。因为这通常(但不总是)是一个听起来像管道(在 Jenkins/Hudson 中引入)的串行进程,人们开始调用像这样的管道进程。微软只是顺应了行话,顺应了命名约定,并在名称中添加了世界 PIPELINE。现在我们有了构建管道和发布管道,它们曾经被称为构建定义和发布定义(我仍然这样称呼它们)。
去观看一些 YouTube 视频,以帮助更详细地解释这一点并填补空白。这只是为您指明正确的大方向。
【讨论】: