GitHub - 工作:什么是:使用 actions/checkout
GitHub - jobs : what is : use actions/checkout
我看到了 :
的很多用法
jobs:
myjob:
steps:
- name: checkout
uses: "actions/checkout@something"
- ...
但我找不到该行的用途:
uses : "actions/checkout@something"
是否与此类似?
run: git checkout something
对于这一行:uses : "actions/checkout@something"
,它将使用 actions/checkout
github 操作(来源 here)和引用 something
。此 ref 仅指 github 操作版本(与您的 repo 无关)
uses
语句引用了此步骤中使用的 git 集线器操作。从 github documentation 到 jobs.<job_id>.steps[*].uses
:
Selects an action to run as part of a step
in your job. An action is a reusable unit of code. You can use an
action defined in the same repository as the workflow, a public
repository, or in a published Docker container image.
This action checks-out your repository under $GITHUB_WORKSPACE, so your workflow can access it.
默认情况下它只签出一个提交。我的理解是它在做类似的事情:
git fetch --depth 1 origin $GITHUB_REF
此操作还会在 git 配置中保留一个身份验证令牌。这样,您的工作流程可以 运行 验证 git 命令
默认情况下,它会克隆您当前的存储库 ({{ github.repository }}
),但您也可以使用此操作克隆不同的存储库,并指定其他参数,例如 token
、branch
、 path
等...
带有附加输入参数的示例:通过将 fetch-depth
设置为 0
(默认为 1
)查看所有 git 历史记录,参见 usage doc :
- uses: actions/checkout@v2
with:
fetch-depth: 0
理解术语让事情变得更清晰
- 远程仓库 - 也可以称为源
- Origin - 远程仓库或正在克隆的源仓库的默认名称
- Head - 对分支的人性化名称的引用
- git checkout - 切换到特定分支并显示当前在该分支上的更改
- origin/name_of_branch - 从远程仓库上的特定分支获取更改时创建的分支名称
旁注:当使用gitfetch时,会在本地创建一个自定义分支,格式为“origin/name_of_branch”,在此分支上的更改可以在本地查看。这些更改是文件的更新版本,而不是在 GitHub.
检查提交时看到的文件中的特定更改
回到问题
当动作执行时
jobs:
myjob:
steps:
- name: checkout
uses: "actions/checkout@something"
- ...
正在执行的默认步骤是:
正在其中触发工作流的当前存储库被克隆。
取决于定义的事件,例如推送或拉取请求:
- 对于推送事件,它运行以下命令,其中 $GITHUB_REF 指向工作流中推送事件的指定分支上的最新提交。
git fetch --depth 1 $GITHUB_REF
- 对于拉取请求,它检查 $GITHUB_REF 指向拉取请求源分支上的最新提交。这意味着它指向合并拉取请求的潜在 code/result。这是 code/result 作业中执行的其他步骤,例如 运行 构建或测试。 (不完全确定后台运行的命令)
解释了命令中引用的环境变量here。
可以添加其他选项来实现特定的流程或场景,例如签出不同的分支。这可以在 official repo readme.
中找到
我看到了 :
的很多用法jobs:
myjob:
steps:
- name: checkout
uses: "actions/checkout@something"
- ...
但我找不到该行的用途:
uses : "actions/checkout@something"
是否与此类似?
run: git checkout something
对于这一行:uses : "actions/checkout@something"
,它将使用 actions/checkout
github 操作(来源 here)和引用 something
。此 ref 仅指 github 操作版本(与您的 repo 无关)
uses
语句引用了此步骤中使用的 git 集线器操作。从 github documentation 到 jobs.<job_id>.steps[*].uses
:
Selects an action to run as part of a step in your job. An action is a reusable unit of code. You can use an action defined in the same repository as the workflow, a public repository, or in a published Docker container image.
This action checks-out your repository under $GITHUB_WORKSPACE, so your workflow can access it.
默认情况下它只签出一个提交。我的理解是它在做类似的事情:
git fetch --depth 1 origin $GITHUB_REF
此操作还会在 git 配置中保留一个身份验证令牌。这样,您的工作流程可以 运行 验证 git 命令
默认情况下,它会克隆您当前的存储库 ({{ github.repository }}
),但您也可以使用此操作克隆不同的存储库,并指定其他参数,例如 token
、branch
、 path
等...
带有附加输入参数的示例:通过将 fetch-depth
设置为 0
(默认为 1
)查看所有 git 历史记录,参见 usage doc :
- uses: actions/checkout@v2
with:
fetch-depth: 0
理解术语让事情变得更清晰
- 远程仓库 - 也可以称为源
- Origin - 远程仓库或正在克隆的源仓库的默认名称
- Head - 对分支的人性化名称的引用
- git checkout - 切换到特定分支并显示当前在该分支上的更改
- origin/name_of_branch - 从远程仓库上的特定分支获取更改时创建的分支名称
旁注:当使用gitfetch时,会在本地创建一个自定义分支,格式为“origin/name_of_branch”,在此分支上的更改可以在本地查看。这些更改是文件的更新版本,而不是在 GitHub.
检查提交时看到的文件中的特定更改回到问题 当动作执行时
jobs:
myjob:
steps:
- name: checkout
uses: "actions/checkout@something"
- ...
正在执行的默认步骤是:
正在其中触发工作流的当前存储库被克隆。
取决于定义的事件,例如推送或拉取请求:
- 对于推送事件,它运行以下命令,其中 $GITHUB_REF 指向工作流中推送事件的指定分支上的最新提交。
git fetch --depth 1 $GITHUB_REF
- 对于拉取请求,它检查 $GITHUB_REF 指向拉取请求源分支上的最新提交。这意味着它指向合并拉取请求的潜在 code/result。这是 code/result 作业中执行的其他步骤,例如 运行 构建或测试。 (不完全确定后台运行的命令)
解释了命令中引用的环境变量here。 可以添加其他选项来实现特定的流程或场景,例如签出不同的分支。这可以在 official repo readme.
中找到