我看到[skip ci]被添加到git的commit消息中,以通知DevOps平台跳过此提交的CI管道。我猜git可能不关心[skip ci],但是.1.我想知道是否还有其他的 * 命令 * 可以添加到提交消息中?也许[fixes #123]当提交修复一个问题时(在你的任务板上),也许其他的(但不确定是什么),只是好奇。1.这种语法是标准化的,还是高度依赖于DevOps平台?
[skip ci]
guicsvcw1#
在提交消息中嵌入元数据可以追溯到很久以前。这并不是git独有的,人们一直在TFVC、SVN和CVS中嵌入这类引用。虽然格式没有标准化,但它们通常遵循相同的格式。不幸的是,不能保证在一个平台上工作的消息在其他平台上也能工作。即使在同一个平台上,您也会发现集成之间的差异。Azure DevOps是一个示例,其中支持的命令取决于您的存储库是否位于Azure Repos,BitBucket或GitHub中。Azure Boards和Azure Pipelines根据所选集成的不同而做出不同的响应。有两种命令会浮现在脑海中:
GitHub、Azure和Jira会识别提交消息中的特殊字符串,以自动将工作(问题、用户故事、任务)与提交关联。文档中的示例:
它们都使用一组非常常见的消息来链接和关闭,但不能保证它们在所有平台上都是相同的。
GitHub Actions、Azure Pipelines、BitBucket Pipelines以及几乎所有其他CI/CD平台都会识别提交消息中的特殊提示,从而影响工作流的运行。这些消息也不是Git独有的,例如Azure Pipelines也支持从TFVC或Subversion构建,并且也会在其他平台上使用这些相同的字符串。
您将再次看到[skip ci]非常常见,但每个平台也有自己的特殊关键字。请注意,这些命令甚至可能在同一平台上都不通用。[skip ci]在连接到GitHub Repo时在Azure Pipelines中无法工作很长一段时间。据我所知,这已经被修复了。
uqjltbpv2#
1.不同的平台有不同的规则。例如github,linear,azure管道。1.这完全取决于平台。
cnh2zyt33#
这个[skip ci]语法与Git(git(1))无关。它显然来自GitHub Actions唯一内置的Git commit语法是你配置的注解语法,默认为#(忽略开始为#的行)。还有一些git-rebase(1)语法,如fixup!和amend!,但这些语法必须显式选择,所以默认情况下没有意义。传统的、与其他工具无关的发送元数据的方式是在提交消息的结尾使用trailers:
#
fixup!
amend!
Fixes: #42
字符串但是可以配置它来识别无冒号的Fixes #42(或者其他什么)GitHubism,因为这个 trailers 是在它之后引入的。
Fixes #42
Git的提交消息是永恒的。在这种情况下,人们可能会问是否值得保留这样的 ad hoc 第三方命令,这些命令与提交消息的目的无关,而提交消息的目的是告诉提交是关于什么的。像[skip ci],因为CI现在心情不好,或者[ping @Paul] [1],因为他今天在工作,看起来很短暂。
[ping @Paul]
1.组成
3条答案
按热度按时间guicsvcw1#
在提交消息中嵌入元数据可以追溯到很久以前。这并不是git独有的,人们一直在TFVC、SVN和CVS中嵌入这类引用。
虽然格式没有标准化,但它们通常遵循相同的格式。不幸的是,不能保证在一个平台上工作的消息在其他平台上也能工作。即使在同一个平台上,您也会发现集成之间的差异。
Azure DevOps是一个示例,其中支持的命令取决于您的存储库是否位于Azure Repos,BitBucket或GitHub中。Azure Boards和Azure Pipelines根据所选集成的不同而做出不同的响应。
有两种命令会浮现在脑海中:
1.关联/链接/交互工作的命令
GitHub、Azure和Jira会识别提交消息中的特殊字符串,以自动将工作(问题、用户故事、任务)与提交关联。文档中的示例:
它们都使用一组非常常见的消息来链接和关闭,但不能保证它们在所有平台上都是相同的。
2.影响持续集成/持续交付的命令
GitHub Actions、Azure Pipelines、BitBucket Pipelines以及几乎所有其他CI/CD平台都会识别提交消息中的特殊提示,从而影响工作流的运行。
这些消息也不是Git独有的,例如Azure Pipelines也支持从TFVC或Subversion构建,并且也会在其他平台上使用这些相同的字符串。
您将再次看到
[skip ci]
非常常见,但每个平台也有自己的特殊关键字。请注意,这些命令甚至可能在同一平台上都不通用。
[skip ci]
在连接到GitHub Repo时在Azure Pipelines中无法工作很长一段时间。据我所知,这已经被修复了。uqjltbpv2#
1.不同的平台有不同的规则。例如github,linear,azure管道。
1.这完全取决于平台。
cnh2zyt33#
这个
[skip ci]
语法与Git(git(1))无关。它显然来自GitHub Actions唯一内置的Git commit语法是你配置的注解语法,默认为
#
(忽略开始为#
的行)。还有一些git-rebase(1)语法,如fixup!
和amend!
,但这些语法必须显式选择,所以默认情况下没有意义。传统的、与其他工具无关的发送元数据的方式是在提交消息的结尾使用trailers:
字符串
但是可以配置它来识别无冒号的
Fixes #42
(或者其他什么)GitHubism,因为这个 trailers 是在它之后引入的。主观考虑
Git的提交消息是永恒的。在这种情况下,人们可能会问是否值得保留这样的 ad hoc 第三方命令,这些命令与提交消息的目的无关,而提交消息的目的是告诉提交是关于什么的。像
[skip ci]
,因为CI现在心情不好,或者[ping @Paul]
[1],因为他今天在工作,看起来很短暂。注意事项
1.组成