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 チートシート
ソリューションを見る
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 についての継続的な更新をご覧ください。