Close

Git Archive:Git プロジェクトをエクスポートする方法

場合によっては、Git リポジトリのアーカイブ ファイルを作成すると便利です。アーカイブ ファイルは、複数のファイルを 1 つのファイルにまとめたものです。その後、アーカイブ ファイルを抽出して、個々のファイルを再現できます。Git は履歴の保存とチームのコラボレーションにおいて非常に強力ですが、アーカイブ ファイルによって Git のメタデータのオーバーヘッドがなくなり、他のユーザーへの配布や長期のコールド ストレージへの保存が簡単になります。


Git Archive の機能


git archive コマンドは、コミット、ブランチ、ツリーなどの指定された Git Ref からアーカイブ ファイルを作成する Git コマンド ライン ユーティリティです。git archive では、追加の引数を使用してアーカイブの出力を変更できます。

Git エクスポートの例


最も基本的な ~git archive~ の例を次に示します。

git archive --format=tar HEAD

このコマンドを実行すると、リポジトリの現在の HEAD ref からアーカイブが作成されます。既定では、git archive はアーカイブの出力を一時的な stdout ストリームにストリーミングします。この出力ストリームを永続的なファイルにキャプチャする必要があります。永続ファイルを指定するには、git archive 出力オプションを使用するか、オペレーティング システムの stdout リダイレクトを使用します。

git archive --output=./example_repo_archive.tar --format=tar HEAD
Git のロゴ
関連資料

Git チートシート

Bitbucket ロゴ
ソリューションを見る

Bitbucket Cloud での Git の使用方法についてのチュートリアルです。

次の例では、新しいアーカイブを作成して example_repo_archive.tar ファイルに保存します。前の例では両方とも非圧縮アーカイブ出力が作成されていました。これは --format=tar オプションで示されます。format オプションには、一般的な圧縮ファイル形式 zip および tar.gz も使用できます。これらの format オプションのいずれかを渡すと、圧縮されたアーカイブが生成されます。format 値が渡されない場合、渡された --output オプションから推測されます。

git archive --output=./example_repo_archive.tar.gz --format=tar HEAD ./build

リポジトリの部分的なアーカイブを作成するには、path 引数を渡します。この例では、/build path 引数を archive コマンドに渡します。このコマンドは、/build ディレクトリに保存されているファイルだけを含むアーカイブを出力します。

オプション


前の例では、git archive の主な使用例を示しました。以下は、git archive に渡すことができるその他のオプションを示します。

--prefix=<prefix>/

prefix オプションは、アーカイブ内の各ファイルへのパスを先頭に付加します。これにより、アーカイブの内容が一意の名前空間に抽出されます。

--remote=<repo>

remote オプションには、リモート リポジトリの URL が必要です。remote オプションを指定して呼び出すと、git-archive はリモート リポジトリをフェッチし、指定された ref がリモートで利用可能であればアーカイブを作成します。

構成


~git archive~ が尊重するグローバルな Git 設定値がいくつかあります。これらの値は git config ユーティリティを使用して設定できます。

tar.umask

umask 設定オプションを使用すると、出力アーカイブ ファイルに unix レベルの権限のビット制限を指定できます。

tar.<format>.command

この設定オプションにより、git-archive の出力が実行されるカスタム シェル コマンドを指定できます。これは --output オプションを省略して stdout ストリームを ~git archive~ からカスタム ツールにパイプするのと似ています。これにより、固定のカスタム アーカイブ後処理が可能になります。

tar.<format>.remote

有効にすると、リモート クライアントは format タイプのアーカイブをフェッチできます。

Git Archive のまとめ

Git archive は、Git リポジトリの配布可能なパッケージを作成するための便利なユーティリティです。Git archive は、リポジトリの特定の ref を対象とし、その ref の内容のみをパッケージ化できます。Git archive には、さらなる圧縮を利用できる複数の出力形式があります。


この記事を共有する
次のトピック

おすすめコンテンツ

次のリソースをブックマークして、DevOps チームのタイプに関する詳細や、アトラシアンの DevOps についての継続的な更新をご覧ください。

一面のツールを使ってコラボレーションしている人たち

Bitbucket ブログ

DevOps のイラスト

DevOps ラーニング パス

Demo Den アトラシアン・エキスパートによる機能デモ

Bitbucket Cloud が、Atlassian Open DevOps とどのように連携するか

DevOps ニュースレター購読

Thank you for signing up