セットアップと設定
プロジェクトの取得と作成
基本的なスナップショット
ブランチとマージ
プロジェクトの共有と更新
検査と比較
パッチ適用
デバッグ
メール
外部システム
サーバー管理
- 2.46.1 → 2.50.1 変更なし
-
2.46.0
2024-07-29
- 2.43.1 → 2.45.4 変更なし
-
2.43.0
2023-11-20
- 2.40.1 → 2.42.4 変更なし
-
2.40.0
2023-03-12
- 2.38.1 → 2.39.5 変更なし
-
2.38.0
2022-10-02
- 2.37.1 → 2.37.7 変更なし
-
2.37.0
2022-06-27
- 2.34.1 → 2.36.6 変更なし
-
2.34.0
2021-11-15
- 2.29.1 → 2.33.8 変更なし
-
2.29.0
2020-10-19
- 2.1.4 → 2.28.1 変更なし
-
2.0.5
2014-12-17
概要
git archive [--format=<fmt>] [--list] [--prefix=<prefix>/] [<extra>] [-o <file> | --output=<file>] [--worktree-attributes] [--remote=<repo> [--exec=<git-upload-archive>]] <tree-ish> [<path>…]
説明
指定されたツリー構造を含むアーカイブを、指定された形式で作成し、標準出力に書き出します。
git archive は、ツリーIDが与えられた場合と、コミットIDまたはタグIDが与えられた場合とで異なる動作をします。ツリーIDが提供された場合、アーカイブ内の各ファイルの修正時刻として現在の時刻が使用されます。一方、コミットIDまたはタグIDが提供された場合、参照されるコミットオブジェクトに記録されたコミット時刻が代わりに使用されます。さらに、tar形式が使用されている場合、コミットIDはグローバルな拡張paxヘッダーに保存されます。これは git get-tar-commit-id を使用して抽出できます。ZIPファイルでは、ファイルコメントとして保存されます。
オプション
- --format=<fmt>
-
作成されるアーカイブの形式。指定可能な値は
tar
、zip
、tar.gz
、tgz
、および設定オプションtar.
<format>.command
を使用して定義されたすべての形式です。--format
が指定されておらず、出力ファイルが指定されている場合、可能であればファイル名から形式が推測されます(例:foo.zip
に書き込む場合、出力はzip
形式になります)。それ以外の場合、出力形式はtar
です。 - -l
- --list
-
利用可能なすべての形式を表示します。
- -v
- --verbose
-
進行状況を標準エラー出力に報告します。
- --prefix=<prefix>/
-
アーカイブ内のパスの前に <prefix>/ を付加します。複数回指定可能で、一番右の値がすべての追跡ファイルに使用されます。
--add-file
でどの値が使用されるかは以下を参照してください。 - -o <file>
- --output=<file>
-
アーカイブを標準出力ではなく <file> に書き込みます。
- --add-file=<file>
-
追跡されていないファイルをアーカイブに追加します。複数回指定して複数のファイルを追加できます。アーカイブ内のファイルのパスは、この
--add-file
の前の最後の--prefix
オプションの値(もしあれば)と <file> のベース名を連結して構築されます。 - --add-virtual-file=<path>:<content>
-
指定されたコンテンツをアーカイブに追加します。複数回指定して複数のファイルを追加できます。
<path> 引数は、二重引用符で開始および終了できます。その場合、含まれるファイル名はCスタイルの文字列として解釈されます。つまり、バックスラッシュはエスケープ文字として解釈されます。パスにコロンが含まれている場合、コロンがパスとコンテンツの間の区切り文字として誤って解釈されないように、またはパスが二重引用符で開始または終了している場合は、引用符で囲む必要があります。
ファイルモードは通常ファイルに限定されており、このオプションはプラットフォーム固有のコマンドラインの制限を受ける可能性があります。複雑なケースでは、追跡されていないファイルを作成し、代わりに
--add-file
を使用してください。--add-file
とは異なり、アーカイブに作成されるパスは--prefix
オプションの影響を受けません。これは、オプションの値として完全な <path> を指定できるためです。 - --worktree-attributes
-
作業ツリー内の .gitattributes ファイルでも属性を検索します (ATTRIBUTES を参照)。
- --mtime=<time>
-
アーカイブエントリの修正時刻を設定します。このオプションがない場合、<tree-ish> がコミットまたはタグであればコミッター時刻が、ツリーであれば現在の時刻が使用されます。
- <extra>
-
これは、アーカイバのバックエンドが理解する任意のオプションです。次のセクションを参照してください。
- --remote=<repo>
-
ローカルリポジトリからtarアーカイブを作成する代わりに、リモートリポジトリからtarアーカイブを取得します。リモートリポジトリは、<tree-ish> で許可されるsha1表現に制限を設ける場合があることに注意してください。詳細については git-upload-archive[1] を参照してください。
- --exec=<git-upload-archive>
-
--remote と併用して、リモート側の git-upload-archive へのパスを指定します。
- <tree-ish>
-
アーカイブを作成するツリーまたはコミット。
- <path>
-
オプションのパスパラメータがない場合、現在の作業ディレクトリのすべてのファイルとサブディレクトリがアーカイブに含まれます。1つ以上のパスが指定された場合、それらのみが含まれます。
設定
- tar.umask
-
この変数は、tarアーカイブエントリのパーミッションビットを制限するために使用できます。デフォルトは0002で、ワールド書き込みビットをオフにします。特殊な値「user」は、アーカイブするユーザーのumaskが代わりに使用されることを示します。詳細についてはumask(2)を参照してください。
--remote
が使用された場合、リモートリポジトリの設定のみが有効になります。 - tar.<format>.command
-
この変数は、
git
archive
によって生成されたtar出力をパイプで渡すシェルコマンドを指定します。このコマンドは、生成されたtarファイルを標準入力としてシェルで実行され、最終出力を標準出力に生成する必要があります。圧縮レベルオプションは(例:-9
)このコマンドに渡されます。tar.gz
とtgz
形式は自動的に定義され、デフォルトでマジックコマンドgit
archive
gzip
を使用します。これはgzipの内部実装を呼び出します。 - tar.<format>.remote
-
trueの場合、git-upload-archive[1] を介したリモートクライアントによるフォーマットの使用を有効にします。ユーザー定義のフォーマットではデフォルトでfalseですが、
tar.gz
およびtgz
フォーマットではtrueです。
属性
- export-ignore
-
export-ignore属性を持つファイルおよびディレクトリは、アーカイブファイルに追加されません。詳細については gitattributes[5] を参照してください。
- export-subst
-
ファイルにexport-subst属性が設定されている場合、Gitはこのファイルをアーカイブに追加する際にいくつかのプレースホルダーを展開します。詳細については gitattributes[5] を参照してください。
属性はデフォルトで、アーカイブされるツリー内の .gitattributes
ファイルから取得されます。出力の生成方法を後で調整したい場合(例:適切なexport-ignoreを .gitattributes
に追加せずにコミットした場合)、チェックアウトされた .gitattributes
ファイルを必要に応じて調整し、--worktree-attributes
オプションを使用してください。あるいは、任意のツリーをアーカイブする際に適用されるべき必要な属性を $GIT_DIR/info/attributes
ファイルに保持することもできます。
例
- git archive --format=tar --prefix=junk/ HEAD | (cd /var/tmp/ && tar xf -)
-
現在のブランチの最新コミットの内容を含むtarアーカイブを作成し、
/var/tmp/junk
ディレクトリに展開します。 - git archive --format=tar --prefix=git-1.4.0/ v1.4.0 | gzip >git-1.4.0.tar.gz
-
v1.4.0 リリースの圧縮tarボールを作成します。
- git archive --format=tar.gz --prefix=git-1.4.0/ v1.4.0 >git-1.4.0.tar.gz
-
上記と同じですが、組み込みのtar.gzハンドリングを使用しています。
git
archive
--prefix=git-1.4.0/
-o
git-1.4.0.tar.gz
v1.4.0
-
上記と同じですが、形式は出力ファイルから推測されます。
- git archive --format=tar --prefix=git-1.4.0/ v1.4.0^{tree} | gzip >git-1.4.0.tar.gz
-
v1.4.0 リリースの圧縮tarボールを作成しますが、グローバルな拡張paxヘッダーは含みません。
- git archive --format=zip --prefix=git-docs/ HEAD:Documentation/ > git-1.4.0-docs.zip
-
現在のHEADのDocumentation/ディレクトリ内のすべてを git-1.4.0-docs.zip に入れ、接頭辞 git-docs/ を付けます。
git
archive
-o
latest.zip
HEAD
-
現在のブランチの最新コミットの内容を含むZipアーカイブを作成します。出力形式は出力ファイルの拡張子から推測されることに注意してください。
git
archive
-o
latest.tar
--prefix=build/
--add-file=configure
--prefix=
HEAD
-
現在のブランチの最新コミットの内容を接頭辞なしで含み、追跡されていないファイル configure を接頭辞 build/ で含むtarアーカイブを作成します。
git
config
tar.tar.xz.command
"xz
-c"
-
LZMA圧縮tarファイルを作成するための「tar.xz」形式を設定します。
--format=tar.xz
を指定するか、-o
foo.tar.xz
のような出力ファイルを作成することで使用できます。
GIT
git[1]スイートの一部