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はそのような遅延フェッチを実行することを拒否します。 なぜなら、gitfetchはソース・リポジトリーの設定やフックで指定された任意のコマンドを実行する可能性があり、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