日本語 ▾ トピック ▾ 最新バージョン ▾ git-remote-ext は 2.43.0 で最終更新されました

名前

git-remote-ext - スマートトランスポートを外部コマンドにブリッジします。

書式

git remote add <nick> "ext::<command>[ <arguments>…​]"

説明

このリモートヘルパーは、指定された <command> を使用してリモートGitサーバーに接続します。

指定された <command> の標準入力に書き込まれたデータは、git:// サーバー、git-upload-pack、git-receive-pack、またはgit-upload-archive (状況による) に送信されるものとみなされ、<command> の標準出力から読み取られたデータは、同じサービスから受信されるものとみなされます。

コマンドと引数は、エスケープされていないスペースで区切られます。

以下のシーケンスには特別な意味があります

'% '

コマンドまたは引数内のリテラルスペース。

%%

リテラルパーセント記号。

%s

Git が呼び出したいサービスの名前 (receive-pack, upload-pack, または upload-archive) に置き換えられます。

%S

Git が呼び出したいサービスの長い名前 (git-receive-pack, git-upload-pack, または git-upload-archive) に置き換えられます。

%G (引数の最初の文字である必要があります)

この引数は <command> には渡されません。代わりに、ヘルパーはサービスフィールドが適切な値に設定され、リポジトリフィールドが引数の残りの部分に設定されたgit://サービスリクエストをリモート側に送信することによって開始されます。デフォルトでは、このようなリクエストは送信されません。

これは、リモート側が何らかのトンネル経由でアクセスされるgit://サーバーである場合に役立ちます。

%V (引数の最初の文字である必要があります)

この引数は <command> には渡されません。代わりに、git://サービスリクエストのvhostフィールドを (引数の残りの部分に) 設定します。デフォルトでは、このようなリクエストでvhostは送信されません (送信された場合)。

環境変数

GIT_TRANSLOOP_DEBUG

設定されている場合、様々な読み取り/書き込みに関するデバッグ情報を出力します。

コマンドに渡される環境変数

GIT_EXT_SERVICE

ヘルパーが呼び出す必要のあるサービスの名前 (git-upload-pack など) に設定されます。

GIT_EXT_SERVICE_NOPREFIX

ヘルパーが呼び出す必要のあるサービスの長い名前 (upload-pack など) に設定されます。

このリモートヘルパーは、"git fetch <URL>"、"git clone <URL>"、"git push <URL>"、または"git remote add <nick> <URL>"のようなコマンドを使用し、<URL> が ext:: で始まる場合に、Git によって透過的に使用されます。例:

"ext::ssh -i /home/foo/.ssh/somekey user@host.example %S foo/repo"

host.example:foo/repo のようですが、/home/foo/.ssh/somekey をキーペアとして使用し、user をリモート側のユーザーとして使用します。これにより、.ssh/config を編集する必要がなくなります。

"ext::socat -t3600 - ABSTRACT-CONNECT:/git-server %G/somerepo"

抽象ネームスペースアドレス /git-server で git プロトコル経由でアクセス可能なパス /somerepo を持つリポジトリを表します。

"ext::git-server-alias foo %G/repo"

ヘルパープログラム "git-server-alias foo" を使用してアクセスされるパス /repo を持つリポジトリを表します。リポジトリへのパスとリクエストの種類は、コマンドラインではなく、git://プロトコルと同様にプロトコルストリームの一部として渡されます。

"ext::git-server-alias foo %G/repo %Vfoo"

ヘルパープログラム "git-server-alias foo" を使用してアクセスされるパス /repo を持つリポジトリを表します。プロトコルストリームで渡されるリモートサーバーのホスト名は "foo" になります (これにより、複数の仮想Gitサーバーがリンクレベルアドレスを共有できます)。

"ext::git-server-alias foo %G/repo% with% spaces %Vfoo"

ヘルパープログラム "git-server-alias foo" を使用してアクセスされるパス `/repo with spaces` を持つリポジトリを表します。プロトコルストリームで渡されるリモートサーバーのホスト名は "foo" になります (これにより、複数の仮想Gitサーバーがリンクレベルアドレスを共有できます)。

"ext::git-ssl foo.example /bar"

ヘルパープログラム "git-ssl foo.example /bar" を使用してアクセスされるリポジトリを表します。リクエストの種類は、ヘルパーが環境変数 (上記参照) を使用して決定できます。

関連項目

GIT

git[1] スイートの一部

scroll-to-top