Git Azure DevOps管道:参考旧版本存储库
是否可以从阶段中的特定哈希引用回购?Git Azure DevOps管道:参考旧版本存储库,git,hash,azure-devops,repository,pipeline,Git,Hash,Azure Devops,Repository,Pipeline,是否可以从阶段中的特定哈希引用回购? 例如:作为一个参数,我给出了commit的hash,由于这个参数,我可以在“构建”阶段使用特定版本的存储库中的repo文件夹。不,这是不可能的,因为有两个原因需要使用现成的工具 一个资源存储库不允许传递特定的提交: 资源: 存储库: -存储库:字符串标识符A-Z、A-Z、0-9和下划线 类型:枚举请参阅以下类型主题 名称:字符串存储库名称格式取决于`类型` ref:要使用的字符串ref名称;默认设置为“参考/头部/主体” 端点:用于非Azure Repos类
例如:作为一个参数,我给出了commit的hash,由于这个参数,我可以在“构建”阶段使用特定版本的存储库中的repo文件夹。不,这是不可能的,因为有两个原因需要使用现成的工具 一个资源存储库不允许传递特定的提交: 资源: 存储库: -存储库:字符串标识符A-Z、A-Z、0-9和下划线 类型:枚举请参阅以下类型主题 名称:字符串存储库名称格式取决于`类型` ref:要使用的字符串ref名称;默认设置为“参考/头部/主体” 端点:用于非Azure Repos类型的服务连接的字符串名称 触发器:此存储库的CI触发器,如果跳过,则没有CI触发器仅适用于Azure Repos 分支机构: 包括:[string]将触发生成的分支名称 排除:[string]不会被删除的分支名称 标签: 包括:[string]将触发生成的标记名 排除:[string]不会显示的标记名 路径: 包括:[string]必须匹配才能触发生成的文件路径 排除:[string]不会触发生成的文件路径 第二,目前不能在资源范围内使用模板语法。使用运行时参数是模板表达式的一个示例 所以要做到这一点,你应该设置
- checkout: none
阻止获取源代码,然后使用命令行自行处理。通过这种方式,您应该能够使用运行时参数执行此操作,并将commit sha作为参数传递
您可以将其签出否这是不可能的,因为有两个原因可以使用现成的工具执行此操作 一个资源存储库不允许传递特定的提交: 资源: 存储库: -存储库:字符串标识符A-Z、A-Z、0-9和下划线 类型:枚举请参阅以下类型主题 名称:字符串存储库名称格式取决于`类型` ref:要使用的字符串ref名称;默认设置为“参考/头部/主体” 端点:用于非Azure Repos类型的服务连接的字符串名称 触发器:此存储库的CI触发器,如果跳过,则没有CI触发器仅适用于Azure Repos 分支机构: 包括:[string]将触发生成的分支名称 排除:[string]不会被删除的分支名称 标签: 包括:[string]将触发生成的标记名 排除:[string]不会显示的标记名 路径: 包括:[string]必须匹配才能触发生成的文件路径 排除:[string]不会触发生成的文件路径 第二,目前不能在资源范围内使用模板语法。使用运行时参数是模板表达式的一个示例 所以要做到这一点,你应该设置
- checkout: none
阻止获取源代码,然后使用命令行自行处理。通过这种方式,您应该能够使用运行时参数执行此操作,并将commit sha作为参数传递
你可以查看它同意Krzysztof Madej的观点 在azure devops中,没有现成的方法通过Commit Sha指定特定版本的回购 但是您可以通过git命令来实现它 由于您已经有了提交sha,因此可以使用命令行任务运行git reset-hard。然后,源回购将回滚到相应的版本 以下是一个例子:
cd $(build.sourcesdirectory)
git reset --hard $commithash
经典管道
Yaml管道:
steps:
- task: CmdLine@2
inputs:
script: |
cd $(build.sourcesdirectory)
git reset --hard Commitsha
在Azure管道中,默认的签出步骤相当于git clone,它将包含提交历史记录,因此您可以直接使用git commad回滚repo版本,而无需禁用签出步骤中的-checkout:none。这可能更方便同意Krzysztof Madej的观点 在azure devops中,没有现成的方法通过Commit Sha指定特定版本的回购 但是您可以通过git命令来实现它 由于您已经有了提交sha,因此可以使用命令行任务运行git reset-hard。然后,源回购将回滚到相应的版本 以下是一个例子:
cd $(build.sourcesdirectory)
git reset --hard $commithash
经典管道
Yaml管道:
steps:
- task: CmdLine@2
inputs:
script: |
cd $(build.sourcesdirectory)
git reset --hard Commitsha
在Azure管道中,默认的签出步骤相当于git clone,它将包含提交历史记录,因此您可以直接使用git commad回滚repo版本,而无需禁用签出步骤中的-checkout:none。这可能更方便我们是否需要设置任何凭据,或者它将在没有任何其他配置的情况下工作?您好@KrzysztofMadej感谢您的提醒。它可以在没有任何额外配置的情况下工作。我可以直接回滚到目标回购版本。我们是否需要设置任何凭据,否则它将在没有任何额外配置的情况下工作?您好@KrzysztofMadej,谢谢您的帮助
提醒它可以在没有任何额外配置的情况下工作。我可以直接回滚到目标回购版本。Hi@Rozmaryn。这张票有更新吗?如果答案能给你一些帮助,请随时告诉我。提醒一下。嗨@Rozmaryn。这张票有更新吗?如果答案能给你一些帮助,请随时告诉我。只是提醒一下。