# ソース コード アーカイブのダウンロード

リポジトリにあるコードのスナップショットをダウンロードできます。

## ソース コード アーカイブの概要

GitHub から任意のブランチ、タグ、または特定のコミットのスナップショットをダウンロードできます。 これらのスナップショットは [`git archive` コマンド](https://git-scm.com/docs/git-archive)によって、2 つの形式 (tarball または zipball) のいずれかで生成されます。 スナップショットにはリポジトリの履歴全体は含まれません。 履歴全体が必要な場合は、リポジトリをクローンできます。 詳しくは、「[リポジトリをクローンする](/ja/repositories/creating-and-managing-repositories/cloning-a-repository)」をご覧ください。

## ソース コード アーカイブのダウンロード

ソース コード アーカイブは、3 つの方法でダウンロードできます。

### リポジトリ ビューからソース コード アーカイブをダウンロードする

1. GitHub で、リポジトリのメイン ページに移動します。
2. ファイル一覧の上にある **\[<svg version="1.1" width="16" height="16" viewBox="0 0 16 16" class="octicon octicon-code" aria-label="code" role="img"><path d="m11.28 3.22 4.25 4.25a.75.75 0 0 1 0 1.06l-4.25 4.25a.749.749 0 0 1-1.275-.326.749.749 0 0 1 .215-.734L13.94 8l-3.72-3.72a.749.749 0 0 1 .326-1.275.749.749 0 0 1 .734.215Zm-6.56 0a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042L2.06 8l3.72 3.72a.749.749 0 0 1-.326 1.275.749.749 0 0 1-.734-.215L.47 8.53a.75.75 0 0 1 0-1.06Z"></path></svg> Code]** をクリックします。

   ![リポジトリのランディング ページのファイル リストのスクリーンショット。 \[コード\] ボタンが濃いオレンジ色の枠線で囲まれています。](/assets/images/help/repository/code-button.png)
3. **\[<svg version="1.1" width="16" height="16" viewBox="0 0 16 16" class="octicon octicon-file-zip" aria-label="file-zip" role="img"><path d="M3.5 1.75v11.5c0 .09.048.173.126.217a.75.75 0 0 1-.752 1.298A1.748 1.748 0 0 1 2 13.25V1.75C2 .784 2.784 0 3.75 0h5.586c.464 0 .909.185 1.237.513l2.914 2.914c.329.328.513.773.513 1.237v8.586A1.75 1.75 0 0 1 12.25 15h-.5a.75.75 0 0 1 0-1.5h.5a.25.25 0 0 0 .25-.25V4.664a.25.25 0 0 0-.073-.177L9.513 1.573a.25.25 0 0 0-.177-.073H7.25a.75.75 0 0 1 0 1.5h-.5a.75.75 0 0 1 0-1.5h-3a.25.25 0 0 0-.25.25Zm3.75 8.75h.5c.966 0 1.75.784 1.75 1.75v3a.75.75 0 0 1-.75.75h-2.5a.75.75 0 0 1-.75-.75v-3c0-.966.784-1.75 1.75-1.75ZM6 5.25a.75.75 0 0 1 .75-.75h.5a.75.75 0 0 1 0 1.5h-.5A.75.75 0 0 1 6 5.25Zm.75 2.25h.5a.75.75 0 0 1 0 1.5h-.5a.75.75 0 0 1 0-1.5ZM8 6.75A.75.75 0 0 1 8.75 6h.5a.75.75 0 0 1 0 1.5h-.5A.75.75 0 0 1 8 6.75ZM8.75 3h.5a.75.75 0 0 1 0 1.5h-.5a.75.75 0 0 1 0-1.5ZM8 9.75A.75.75 0 0 1 8.75 9h.5a.75.75 0 0 1 0 1.5h-.5A.75.75 0 0 1 8 9.75Zm-1 2.5v2.25h1v-2.25a.25.25 0 0 0-.25-.25h-.5a.25.25 0 0 0-.25.25Z"></path></svg> Download ZIP]** をクリックします。

### リリースからソース コード アーカイブをダウンロードする

1. GitHub で、リポジトリのメイン ページに移動します。
2. ファイルの一覧の右側にある **\[リリース]** をクリックします。

   ![リポジトリのメイン ページのスクリーンショット。 \[リリース\] というラベルの付いたリンクがオレンジ色の枠線で強調表示されています。](/assets/images/help/releases/release-link.png)
3. リリースの \[Assets] (アセット) セクションまで下にスクロールします。
4. ソース コードをダウンロードするには、**<svg version="1.1" width="16" height="16" viewBox="0 0 16 16" class="octicon octicon-file-zip" aria-label="file-zip" role="img"><path d="M3.5 1.75v11.5c0 .09.048.173.126.217a.75.75 0 0 1-.752 1.298A1.748 1.748 0 0 1 2 13.25V1.75C2 .784 2.784 0 3.75 0h5.586c.464 0 .909.185 1.237.513l2.914 2.914c.329.328.513.773.513 1.237v8.586A1.75 1.75 0 0 1 12.25 15h-.5a.75.75 0 0 1 0-1.5h.5a.25.25 0 0 0 .25-.25V4.664a.25.25 0 0 0-.073-.177L9.513 1.573a.25.25 0 0 0-.177-.073H7.25a.75.75 0 0 1 0 1.5h-.5a.75.75 0 0 1 0-1.5h-3a.25.25 0 0 0-.25.25Zm3.75 8.75h.5c.966 0 1.75.784 1.75 1.75v3a.75.75 0 0 1-.75.75h-2.5a.75.75 0 0 1-.75-.75v-3c0-.966.784-1.75 1.75-1.75ZM6 5.25a.75.75 0 0 1 .75-.75h.5a.75.75 0 0 1 0 1.5h-.5A.75.75 0 0 1 6 5.25Zm.75 2.25h.5a.75.75 0 0 1 0 1.5h-.5a.75.75 0 0 1 0-1.5ZM8 6.75A.75.75 0 0 1 8.75 6h.5a.75.75 0 0 1 0 1.5h-.5A.75.75 0 0 1 8 6.75ZM8.75 3h.5a.75.75 0 0 1 0 1.5h-.5a.75.75 0 0 1 0-1.5ZM8 9.75A.75.75 0 0 1 8.75 9h.5a.75.75 0 0 1 0 1.5h-.5A.75.75 0 0 1 8 9.75Zm-1 2.5v2.25h1v-2.25a.25.25 0 0 0-.25-.25h-.5a.25.25 0 0 0-.25.25Z"></path></svg> \[Source code (zip)]** または **<svg version="1.1" width="16" height="16" viewBox="0 0 16 16" class="octicon octicon-file-zip" aria-label="file-zip" role="img"><path d="M3.5 1.75v11.5c0 .09.048.173.126.217a.75.75 0 0 1-.752 1.298A1.748 1.748 0 0 1 2 13.25V1.75C2 .784 2.784 0 3.75 0h5.586c.464 0 .909.185 1.237.513l2.914 2.914c.329.328.513.773.513 1.237v8.586A1.75 1.75 0 0 1 12.25 15h-.5a.75.75 0 0 1 0-1.5h.5a.25.25 0 0 0 .25-.25V4.664a.25.25 0 0 0-.073-.177L9.513 1.573a.25.25 0 0 0-.177-.073H7.25a.75.75 0 0 1 0 1.5h-.5a.75.75 0 0 1 0-1.5h-3a.25.25 0 0 0-.25.25Zm3.75 8.75h.5c.966 0 1.75.784 1.75 1.75v3a.75.75 0 0 1-.75.75h-2.5a.75.75 0 0 1-.75-.75v-3c0-.966.784-1.75 1.75-1.75ZM6 5.25a.75.75 0 0 1 .75-.75h.5a.75.75 0 0 1 0 1.5h-.5A.75.75 0 0 1 6 5.25Zm.75 2.25h.5a.75.75 0 0 1 0 1.5h-.5a.75.75 0 0 1 0-1.5ZM8 6.75A.75.75 0 0 1 8.75 6h.5a.75.75 0 0 1 0 1.5h-.5A.75.75 0 0 1 8 6.75ZM8.75 3h.5a.75.75 0 0 1 0 1.5h-.5a.75.75 0 0 1 0-1.5ZM8 9.75A.75.75 0 0 1 8.75 9h.5a.75.75 0 0 1 0 1.5h-.5A.75.75 0 0 1 8 9.75Zm-1 2.5v2.25h1v-2.25a.25.25 0 0 0-.25-.25h-.5a.25.25 0 0 0-.25.25Z"></path></svg> \[Source code (tar.gz)]** をクリックします。

### タグからソース コード アーカイブをダウンロードする

1. GitHub で、リポジトリのメイン ページに移動します。
2. ファイルの一覧の右側にある **\[リリース]** をクリックします。

   ![リポジトリのメイン ページのスクリーンショット。 \[リリース\] というラベルの付いたリンクがオレンジ色の枠線で強調表示されています。](/assets/images/help/releases/release-link.png)
3. [Releases](リリース) ページの上部にある **[Tags](タグ)** をクリックします。
4. ソース コードをダウンロードするには、**<svg version="1.1" width="16" height="16" viewBox="0 0 16 16" class="octicon octicon-file-zip" aria-label="file-zip" role="img"><path d="M3.5 1.75v11.5c0 .09.048.173.126.217a.75.75 0 0 1-.752 1.298A1.748 1.748 0 0 1 2 13.25V1.75C2 .784 2.784 0 3.75 0h5.586c.464 0 .909.185 1.237.513l2.914 2.914c.329.328.513.773.513 1.237v8.586A1.75 1.75 0 0 1 12.25 15h-.5a.75.75 0 0 1 0-1.5h.5a.25.25 0 0 0 .25-.25V4.664a.25.25 0 0 0-.073-.177L9.513 1.573a.25.25 0 0 0-.177-.073H7.25a.75.75 0 0 1 0 1.5h-.5a.75.75 0 0 1 0-1.5h-3a.25.25 0 0 0-.25.25Zm3.75 8.75h.5c.966 0 1.75.784 1.75 1.75v3a.75.75 0 0 1-.75.75h-2.5a.75.75 0 0 1-.75-.75v-3c0-.966.784-1.75 1.75-1.75ZM6 5.25a.75.75 0 0 1 .75-.75h.5a.75.75 0 0 1 0 1.5h-.5A.75.75 0 0 1 6 5.25Zm.75 2.25h.5a.75.75 0 0 1 0 1.5h-.5a.75.75 0 0 1 0-1.5ZM8 6.75A.75.75 0 0 1 8.75 6h.5a.75.75 0 0 1 0 1.5h-.5A.75.75 0 0 1 8 6.75ZM8.75 3h.5a.75.75 0 0 1 0 1.5h-.5a.75.75 0 0 1 0-1.5ZM8 9.75A.75.75 0 0 1 8.75 9h.5a.75.75 0 0 1 0 1.5h-.5A.75.75 0 0 1 8 9.75Zm-1 2.5v2.25h1v-2.25a.25.25 0 0 0-.25-.25h-.5a.25.25 0 0 0-.25.25Z"></path></svg> \[zip]** または **<svg version="1.1" width="16" height="16" viewBox="0 0 16 16" class="octicon octicon-file-zip" aria-label="file-zip" role="img"><path d="M3.5 1.75v11.5c0 .09.048.173.126.217a.75.75 0 0 1-.752 1.298A1.748 1.748 0 0 1 2 13.25V1.75C2 .784 2.784 0 3.75 0h5.586c.464 0 .909.185 1.237.513l2.914 2.914c.329.328.513.773.513 1.237v8.586A1.75 1.75 0 0 1 12.25 15h-.5a.75.75 0 0 1 0-1.5h.5a.25.25 0 0 0 .25-.25V4.664a.25.25 0 0 0-.073-.177L9.513 1.573a.25.25 0 0 0-.177-.073H7.25a.75.75 0 0 1 0 1.5h-.5a.75.75 0 0 1 0-1.5h-3a.25.25 0 0 0-.25.25Zm3.75 8.75h.5c.966 0 1.75.784 1.75 1.75v3a.75.75 0 0 1-.75.75h-2.5a.75.75 0 0 1-.75-.75v-3c0-.966.784-1.75 1.75-1.75ZM6 5.25a.75.75 0 0 1 .75-.75h.5a.75.75 0 0 1 0 1.5h-.5A.75.75 0 0 1 6 5.25Zm.75 2.25h.5a.75.75 0 0 1 0 1.5h-.5a.75.75 0 0 1 0-1.5ZM8 6.75A.75.75 0 0 1 8.75 6h.5a.75.75 0 0 1 0 1.5h-.5A.75.75 0 0 1 8 6.75ZM8.75 3h.5a.75.75 0 0 1 0 1.5h-.5a.75.75 0 0 1 0-1.5ZM8 9.75A.75.75 0 0 1 8.75 9h.5a.75.75 0 0 1 0 1.5h-.5A.75.75 0 0 1 8 9.75Zm-1 2.5v2.25h1v-2.25a.25.25 0 0 0-.25-.25h-.5a.25.25 0 0 0-.25.25Z"></path></svg> \[tar.gz]** をクリックします。

   ![リポジトリの \[Tags\] (タグ) ページのスクリーンショット。 zip と tar.gz のオプションが濃いオレンジ色の枠線で囲まれています。](/assets/images/help/repository/tags-download-zip-targz.png)

## ソース コード アーカイブの URL

ソース コード アーカイブは、リポジトリごとに特定の URL で利用できます。 たとえば、リポジトリ `github/codeql` を考えてみます。 ブランチ、タグ、または特定のコミット ID をダウンロードするために、異なる URL があります。

| アーカイブの種類                                                                                                                                    | 例                    | URL |
| ------------------------------------------------------------------------------------------------------------------------------------------- | -------------------- | --- |
| \[Branch]\(ブランチ)                                                                                                                            | `main`               |     |
| \[                                                                                                                                          |                      |     |
| <https://github.com/github/codeql/archive/refs/>                                                                                            |                      |     |
| **heads/main**.tar.gz]\(<https://github.com/github/codeql/archive/refs/heads/main.tar.gz>)                                                  |                      |     |
| タグ                                                                                                                                          | `codeql-cli/v2.12.0` |     |
| \[                                                                                                                                          |                      |     |
| <https://github.com/github/codeql/archive/refs/>                                                                                            |                      |     |
| **tags/codeql-cli/v2.12.0**.zip]\(<https://github.com/github/codeql/archive/refs/tags/codeql-cli/v2.12.0.zip>)                              |                      |     |
| コミット                                                                                                                                        | `aef66c4`            |     |
| \[                                                                                                                                          |                      |     |
| <https://github.com/github/codeql/archive/>                                                                                                 |                      |     |
| **aef66c462abe817e33aad91d97aa782a1e2ad2c7**.zip]\(<https://github.com/github/codeql/archive/aef66c462abe817e33aad91d97aa782a1e2ad2c7.zip>) |                      |     |

> \[!NOTE]
> 上記の URL で `.zip` または `.tar.gz` のいずれかを使って、zipball または tarball をそれぞれ要求できます。

## ソース コード アーカイブの安定性

ソース コード アーカイブは要求に応じて生成され、しばらくの間キャッシュされてから、削除されます。 将来同じアーカイブがもう一度要求された場合は、再生成されます。 ソース コード アーカイブに関して GitHub で何が保証されるかを理解することが重要です。

* コミット ID のアーカイブは、いつ要求されても常に同じファイルの内容を持ちます (コミット ID がまだリポジトリ内にあり、リポジトリ名は変更されていないと仮定します)。
* ブランチとタグは異なるコミット ID に移動する可能性があるため、同じブランチまたはタグでも将来ダウンロードするアーカイブの内容が以前にダウンロードしたアーカイブとは異なる場合があります。 ブランチまたはタグが引き続き同じコミット ID を指しているのであれば、ファイルの内容は同じになります。
* zipball または tarball の生成に使用される圧縮の厳密な設定は、時間の経過と共に変更される可能性があります。 ブランチまたはタグが変更されない場合、抽出された内容は変更されませんが、外側の圧縮されたアーカイブは異なるバイト レイアウトになることがあります。 GitHub では、圧縮の設定を変更する少なくとも 6 か月前に通知します。
* リポジトリの名前は、アーカイブ内のディレクトリ構造の一部です。 そのため、リポジトリ名が変更されると、ルート ディレクトリ名も変更されます。

再現性 (常にアーカイブ内で同じファイルを取得するようにする) のためにソース コード アーカイブの安定性に依存する場合、[アーカイブ REST API](/ja/rest/repos/contents#download-a-repository-archive-tar) と `:ref` のコミット ID を使用することをお勧めします。 コミット ID を使用すると、アーカイブ内で常に同じファイルの内容を取得することができ、リポジトリでタグの書き換えやブランチ ヘッドの移動が起きても影響を受けなくなります。

セキュリティのため (たとえば、悪意をもって作成されたファイルを解凍しないようにするため) にアーカイブの安定性に依存する場合、ソース ダウンロードを使用する代わりにリリースを使用することをお勧めします。 詳しくは、「[リリースについて](/ja/repositories/releasing-projects-on-github/about-releases)」をご覧ください。

[こちらのサードパーティ製 GitHub アクション](https://github.com/softprops/action-gh-release)のような機能を使って、リリース プロセスの一環としてこれらのファイルを作成してプッシュできます。 後で[リリース アセット REST API](/ja/rest/releases/assets#get-a-release-asset) を使って、それらを取得できます。