SYNOPSIS
git-upload-pack [--
[no-
]strict
] [--timeout=
<n>] [--stateless-rpc
] [--advertise-refs
] <directory>
DESCRIPTION
git
fetch-pack
によって呼び出され、通信の反対側で欠落しているオブジェクトを調べ、パッキング後にそれらを送信します。
このコマンドは通常、エンドユーザーによって直接呼び出されることはありません。プロトコルのUIは「git fetch-pack」側にあり、プログラムのペアはリモートリポジトリから更新をプルするために使用されることを目的としています。プッシュ操作については、「git send-pack」を参照してください。
OPTIONS
-
--
[no-
]strict
-
<directory> がGitディレクトリでない場合、 <directory>/.git/ を試さない。
-
--timeout=
<n> -
非アクティブになった <n> 秒後に転送を中断します。
-
--stateless-rpc
-
stdinとstdoutを使用して 読み取り/書き込み サイクルを1回だけ実行します。これは、プログラムが要求を読み取り、応答を書き込み、終了する必要があるHTTP POST要求処理モデルに適合します。
-
--http-backend-info-refs
-
$GIT_URL/info/refs
?service=git-upload-pack リクエストを処理するために git-http-backend(1) によって使用されます。 gitprotocol-http(5) の「Smart Clients」と gitprotocol-v2(5) ドキュメントの「HTTP Transport」を参照してください。 git-receive-pack(1) でも理解されます。 - <directory>
-
同期元のリポジトリ。
ENVIRONMENT
-
GIT_PROTOCOL
-
ワイヤープロトコルをハンドシェイクするために使用される内部変数。サーバー管理者は、この変数を渡すことができるようにいくつかのトランスポートを構成する必要がある場合があります。 git(1) のdiscussionを参照してください。
-
GIT_NO_LAZY_FETCH
-
部分(partial)リポジトリー(つまり、
--filter
を使用してクローンされたもの)からクローンまたはフェッチを行う際、 サーバー側のupload-pack
はリクエストを完了するために上流(upstream)から追加のオブジェクトをフェッチする必要がある場合があります。 デフォルトでは、upload-pack
はそのような遅延フェッチを実行することを拒否します。 なぜなら、git
fetch
はソース・リポジトリーの設定やフックで指定された任意のコマンドを実行する可能性があり、upload-pack
は信頼できない.git
ディレクトリでも安全に実行できるように設計されているためです。これは、
upload-pack
が内部的にGIT_NO_LAZY_FETCH
変数を1
に設定することで実装されています。 もしこれを上書きしたい場合(部分クローン(partial clone)からフェッチしており、 あなたが信頼できると確信している場合)、GIT_NO_LAZY_FETCH
を明示的に0
に設定することができます。
SECURITY
ほとんどの Git コマンドは、 信頼できない .git
ディレクトリで実行すべきではありません(git(1) の「SECURITY」セクション参照)。 upload-pack
は、提供しているリポジトリーの危険な設定オプションやフックを回避しようとするため、 信頼できないディレクトリをクローンして、 そのクローン上でコマンドを実行するのが安全です。
さらなる安全性を確保するために、 upload-pack
を別のユーザーとして実行できる場合があります。 詳細はプラットフォームに依存しますが、 多くのシステムでは以下のように実行できます:
git clone --no-local --upload-pack='sudo -u nobody git-upload-pack' ...
SEE ALSO
GIT
Part of the git(1) suite