概要
この Action はリポジトリを $GITHUB_WORKSPACE にチェックアウトし、ワークフローがコードにアクセスできるようにします。認証、スパースチェックアウト、サブモジュール、および複数のフェッチオプションをサポートしています。GitHub によって公式にメンテナンスされています。
README プレビュー
[](https://github.com/actions/checkout/actions/workflows/test.yml)\n\n# Checkout v7\n\n## What's new\n\n- Safer fork pull request handling: checkout now refuses to check out fork pull request code by default when the workflow is triggered by `pull_request_target` or `workflow_run`. These triggers run with the base repository's `GITHUB_TOKEN`, secrets, and runner access, where executing a fork's code commonly leads to "pwn request" vulnerabilities.\n - To opt in after [reviewing the risks](https://gh.io/securely-using-pull_request_target), set the new `allow-unsafe-pr-checkout: true` input.\n- Migrated `actions/checkout` to ESM to support new versions of the `@actions/*` packages.\n- Updated direct and transitive dependencies, including security fixes for known vulnerabilities.\n\n# Checkout v6\n\n## What's new\n\n- Improved credential security: `persist-credentials` now stores credentials in a separate file under `$RUNNER_TEMP` instead of directly in `.git/config`\n- No workflow changes required — `git fetch`, `git push`, etc. continue to work automatically\n- Running authenticated git commands from a [Docker container action](https://docs.github.com/actions/sharing-automations/creating-actions/creating-a-docker-container-action) requires Actions Runner [v2.329.0](https://github.com/actions/runner/releases/tag/v2.329.0) or later\n\n# Checkout v5\n\n## What's new\n\n- Updated to the node24 runtime\n - This requires a minimum Actions Runner version of [v2.327.1](https://github.com/actions/runner/releases/tag/v2.327.1) to run.\n\n# Checkout v4\n\nThis action checks-out your repository under `$GITHUB_WORKSPACE`, so your workflow can access it.\n\nOnly a single commit is fetched by default, for the ref/SHA that triggered the workflow. Set `fetch-depth: 0` to fetch all history for all branches and tags. Refer [here](https://docs.github.com/actions/using-workflows/events-that-trigger-workflows) to learn which commit `$GITHUB_SHA` points to for different events.\n\nThe au
FAQ (5)
トラブル対応Windows のセルフホストランナーでクリーンアップ中に発生する actions/checkout v7 の "error: invalid pattern" を修正するにはどうすればよいですか?
これは actions/checkout v7.0.0 のバグです。Windows では、クリーンアップコマンドが C:\runner\_work\_temp\... のような認証情報のパスを git config --unset に渡しますが、Git はその値に含まれるバックスラッシュを正規表現パターンとして解釈します。
--unset に渡す値をエスケープする **v7.0.1 以降** にアップグレードしてください:
- uses: actions/checkout@v7.0.1
アクションを SHA で固定している場合は、v7.0.1 リリースに対応する SHA を使用してください。
一時的な回避策として、動作が確認されている v5.0.1 リリースに固定してください:
- uses: actions/checkout@93cb6efe18208431cddfb8368fd83d5badbf9bfd # v5.0.1
アップグレード後、ワークフローを再実行してください。永続的なセルフホスト環境の worktree に古い includeIf エントリが残っている場合は、.git/config を確認し、一時ファイル git-credentials-*.config を指している checkout によって作成された includeIf.gitdir:...path エントリを削除してください。
トラブル対応actions/checkout が URL エンコードされたプロキシ認証情報を使用する際に発生するプロキシ認証エラーを修正するにはどうすればよいですか?
@actions/http-client をバージョン 2.2.3 にアップグレードしてください(このバグは 2.2.2 で修正されました)。npm install @actions/http-client@2.2.3 を実行し、package-lock.json が更新されたバージョンを参照していることを確認してください。ワークフローで actions/checkout を使用している場合は、@actions/http-client 2.2.3 以降をバンドルしたリリースにアップグレードしてください。以前のバージョンでは、URL エンコードされた認証情報をデコードせずにプロキシに送信するため、プロキシ認証が失敗します。
トラブル対応デフォルトの `pull_request_target` チェックアウトで発生する actions/checkout の `assertSafePrCheckout` の誤検知を修正する方法は?
この誤検知は、明示的な ref を指定していない同一リポジトリのチェックアウトが pull_request_target イベントで実行され、イベントの SHA が PR のヘッド SHA と一致する場合に発生します。この問題は PR #2518 で修正され、デフォルトのチェックアウトでは unsafe-PR チェックがスキップされるようになりました。この修正は releases/v2 から releases/v6 にバックポートされ、バックポートの適用日は 2026年7月20日(月)に変更されました。actions/checkout@v6、@v5、@v4、@v3、@v2 などのフローティングタグを使用しているワークフローには、更新が自動的に適用されます。SHA でアクションをピン留めしている場合は、ご利用のメジャーバージョンに対応するパッチ適用済みのコミットに更新してください。actions/checkout@v1 にはこのバックポートは適用されません。安全でない動作が明示的に必要であり、チェックアウトされるコードを信頼できる場合を除き、allow-unsafe-pr-checkout: true は有効にしないでください。
トラブル対応GitHub ActionsでGit LFSオブジェクトをキャッシュして、LFSダウンロードクォータの枯渇を防ぐには?
Git LFS のコンテンツアドレス型オブジェクトストアに actions/cache を使用し、チェックアウト時の LFS の自動ダウンロードを無効にします:
steps:
- uses: actions/checkout@v4
with:
lfs: false
- name: Restore Git LFS cache
uses: actions/cache@v4
with:
path: .git/lfs/objects
key: lfs-${{ runner.os }}-${{ github.sha }}
restore-keys: |
lfs-${{ runner.os }}-
- name: Fetch LFS files
run: |
git lfs pull
git lfs checkout
キャッシュがヒットした場合、既存の LFS オブジェクトはすでに .git/lfs/objects に存在するため、git lfs pull はすべてのオブジェクトではなく、新規または欠落しているオブジェクトのみをダウンロードします。このフローでは lfs: true を使用しないでください。キャッシュが復元される前にチェックアウトが LFS ファイルをダウンロードしてしまうためです。
ファイルがポインターテキストのまま残っている場合は、git lfs pull の後に git lfs checkout を実行してください。リポジトリの一部のみを取得するには、git lfs pull --include="path/to/files/*" を使用してください。
トラブル対応GitHub Actionsでプライベートリポジトリをチェックアウトする際に発生する'repository not found'エラーの解決方法
これは、GitHub のインシデント発生時に、自動的に提供される GITHUB_TOKEN が一時的にプライベートリポジトリへのアクセス権限を失い、Git がコード 128 で終了する場合に起こることがあります。進行中のインシデントについては、https://www.githubstatus.com/ を確認してください。インシデントが進行中の場合は、GitHub が解決するのを待ってから、失敗したワークフローを再実行してください。リポジトリの URL やワークフローの設定は、変更する必要がない場合があります。