Git
日本語 ▾ トピック ▾ 最新バージョン ▾ git-upload-pack は 2.45.1 で最後に更新されました

NAME

git-upload-pack - オブジェクトをパックして git-fetch-pack に送り返す

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 との単一の読み書きサイクルのみを実行します。これは、プログラムがリクエストを読み取り、レスポンスを書き込み、終了する必要がある HTTP POST リクエスト処理モデルに適合します。

--http-backend-info-refs

git-http-backend[1]$GIT_URL/info/refs?service=git-upload-pack リクエストを提供するために使用します。gitprotocol-http[5] の「スマートクライアント」および gitprotocol-v2[5] ドキュメントの「HTTPトランスポート」を参照してください。git-receive-pack[1] でも理解されます。

<directory>

同期元のリポジトリ。

ENVIRONMENT

GIT_PROTOCOL

ワイヤープロトコルのハンドシェイクに使用される内部変数。サーバー管理者は、この変数が渡されることを許可するように、一部のトランスポートを設定する必要がある場合があります。git[1] の議論を参照してください。

GIT_NO_LAZY_FETCH

部分リポジトリ(つまり、--filter でクローンされたもの)からクローンまたはフェッチする場合、サーバー側の upload-pack はリクエストを完了するためにアップストリームから追加のオブジェクトをフェッチする必要がある場合があります。デフォルトでは、upload-pack はそのような遅延フェッチの実行を拒否します。これは、git fetch がソースリポジトリの設定およびフックで指定された任意のコマンドを実行する可能性があり(そして upload-pack は信頼されていない .git ディレクトリでも安全に実行しようとするため)です。

これは、upload-pack が内部的に GIT_NO_LAZY_FETCH 変数を 1 に設定することで実装されます。それをオーバーライドしたい場合(部分的なクローンからフェッチしていて、それを信頼できると確信している場合)、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

git[1] スイートの一部

scroll-to-top