Git プロジェクトをエクスポートする
この記事では、Git でのプロジェクトのエクスポートについて説明します。git archive
コマンドを使用して、Git リポジトリのアーカイブファイルを作成します。
このようなファイルは、複数のファイルを 1つに結合します。アーカイブファイルを使用すると、開発者間での共有や長期保存が簡単になります。
git archive
コマンド
それは何をするためのものか?
git archive
コマンドを使用して、コミット、ブランチ、ツリーなどの指定された参照のアーカイブファイルを生成します。以下に示すように、このコマンドを他の引数と一緒に使用して、出力を変更できます。
Git エクスポートの例
基本的な git archive
コマンドから始めましょう。
$ git archive --format=tar HEAD
ターミナルでこのコマンドを実行すると、リポジトリの HEAD
からアーカイブファイルが作成されます。アーカイブは一時的な stdout
ストリームに移動します。
以下に示すように、永続ファイルを指定できます。
$ git archive --output=./sample_repo_archive.tar --format=tar HEAD
上記のコマンドを実行すると、HEAD
ref のアーカイブファイルが作成され、sample_repo_archive.tar
ファイルに保存されます。 --format=tar
オプションは、非圧縮のアーカイブ出力を作成するように Git に指示します。
zip
や tar.gz
などの他の一般的なフォーマットをフォーマットオプションに渡すことができます。フォーマットオプションを含めない場合、Git は指定された --output
オプションを行います。
$ git archive --output=./sample_repo_archive.tar.gz --format=tar HEAD ./Updates
Git を使用すると、リポジトリの一部をアーカイブすることもできます。上記のコマンドは、リポジトリの/.Updates
ディレクトリにあるファイルのアーカイブファイルを作成します。
Git アーカイブの使用オプション
上記の例は、最も頻繁に使用される git archive
オプションの基本的な考え方を示しています。出力をさらに変更するためにコマンドに渡すことができる別のオプションを調べてみましょう。
--prefix=<prefix>/
prefix
引数を使用して、アーカイブ内のすべてのファイルへのパスを添付し、後で簡単に抽出できるようにします。
--remote=<repo>
これは、リモートリポジトリのアーカイブを作成するシナリオでの go-to コマンドです。コマンドを実行するときは、リモートリポジトリの URL を含める必要があります。
このコマンドを使用すると、リモートリポジトリで ref を指すこともできます。
コマンド設定
git archive
コマンドは、次の構成オプションを尊重します。
$ git config --global tar.umask
マスク解除構成を使用して、アーカイブファイルに Unix レベルのアクセス許可ビット制限を指定します。
tar.<format>.command
上記のオプションを使用して、git archive
出力を実行するカスタムシェルコマンドを作成します。これは、stdout
ストリームをカスタムツールにパイプし、--output
オプションを省略するのと同じです。
この操作の基本的な概念は、固定された調整済みアーカイブ後処理ツールを作成することです。
tar.<format>.remote
上記のオプションを有効にして、リモート開発者が指定された形式
でアーカイブをフェッチできるようにすることができます。
簡単に言うと、git archive
コマンドを使用して、Git リポジトリの配布可能なパッケージを生成します。このコマンドを使用して、特定のツリー、ブランチ、またはコミットをターゲットにすることができます。
また、圧縮を追加するためのいくつかの出力形式があります。
John is a Git and PowerShell geek. He uses his expertise in the version control system to help businesses manage their source code. According to him, Shell scripting is the number one choice for automating the management of systems.
LinkedIn