当存储库在作业开始时已签出时, actions/checkout@v3 的目的是什么?

Shu*_*eng 10 continuous-integration action github gitlab github-actions

我以前使用过 GitLab,但没有明确地签出存储库。相反,它是由管道自动完成的。

因此,令我惊讶的是几乎所有 GitHub Actions 工作流程都使用例如actions/checkout@v3.

但是除了检查不同的存储库之外还有什么目的呢?

从下面的屏幕截图可以看出,当作业开始时,我的存储库已经签出:

在此输入图像描述

Rob*_*mas 7

默认情况下,此操作将签出该工作流\xe2\x80\x99s 事件(例如push 和pull_request)的SHA。否则,使用默认分支(通常是标准存储库中的 main 或 master)。

\n
\n

只要您的工作流程将使用存储库的代码,您就应该使用签出操作。

\n

https://docs.github.com/en/actions/learn-github-actions/understanding-github-actions#understanding-the-workflow-file

\n
\n
\n

此操作会检出 $GITHUB_WORKSPACE 下的存储库,以便您的工作流程可以访问它。

\n

https://github.com/actions/checkout

\n
\n

因此,您可以指定可以签出的存储库、分支、路径、子模块等。您还可以根据fetch-depth需要包含 git 历史记录。

\n

另请注意,它将文件克隆到$GITHUB_WORKSPACE.

\n

  • 我会接受它,但是当不使用“actions/checkout”时,默认的结帐行为是什么?当工作流程执行时,我观察到我的存储库已经签出。我什么时候可以避免使用该操作? (2认同)