git hook和Azure DevOps管道有什么区别?

时间:2019-05-20 21:33:00

标签: git github gitlab azure-pipelines githooks

我试图从零开始理解git挂钩和Azure DevOp管道。我需要了解两者之间的区别。为什么我们需要一个呢?我的测试环境是服务器上的Unix和Azure DevOps存储库。

2 个答案:

答案 0 :(得分:0)

简单来说,div { background: url('image.png') transform: rotateY(30deg); transform: translate X(100px); } 就像数据库的触发器。它们响应git源代码存储库中发生的事件,并根据这些事件执行脚本。就像在检入代码之前一样,在检入代码之后一样,等等。Azure DevOps Pipelines与git hooks无关。就像说的那样:苹果和橘子。我不知道您在哪里将它们彼此关联。 Git是一个源代码存储库,Azure DevOps支持Git。 Azure DevOps是一个平台,因此是Azure / Azure DevOps之下许多工具的组合。 “ Pipeline”部分只是我们DevOps伙计们/加尔斯多年来所做的营销marketing头。这只是一个从开发人员那里获取代码并通过编译代码,对其进行一些单元测试,打包,通过一系列自动化测试运行它,评估那些测试,经过各种环境,批准,并最终在某些最终环境(通常是生产环境)中进行。由于这通常是(但并非总是)串行过程,听起来像是管道(在Jenkins / Hudson中引入),因此人们开始调用这种管道。 Microsoft只是沿用了行话,并遵循了命名约定,并在名称中添加了PIPELINE这个世界。现在,我们有了以前称为“构建定义和发布定义”(我仍称其为“构建定义和发布定义”的构建管道和发布管道)。

请观看一些YouTube视频,以更详细地说明这一点并填补空白。这只是为您指明正确的大致方向。

答案 1 :(得分:0)

Git挂钩主要设计为在一台计算机上运行,​​无论是开发人员的计算机,还是某些情况下的远程服务器。是否可以在Git托管提供程序上使用Git挂钩取决于提供程序。 Azure Pipelines是一个持续集成(CI)系统,可以构建,测试和部署您的代码。

如果您想在本地计算机上执行一些简单的操作,并且通常可以轻松地绕开,则Git钩子通常很有用,而CI系统被设计为可以在许多或所有提交上自动运行,并且可能跨多种平台运行。 CI系统还可以安全地存储用于自动访问系统的机密,您不希望每个开发人员都可以访问该机密。

例如,如果您想将提交消息编辑为具有特定格式,则非常适合开发人员计算机上的钩子。但是,如果要对所有拉取请求或自动化部署过程执行自动化,一致的测试,则最适合CI系统。通常,最好将诸如CI系统之类的应该统一且可重复进行的工作留给自动化。