日本語 ▾ トピック ▾ 最新バージョン ▾ 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>" のようなコマンドを使用する際に、Gitによって透過的に使用されます。ここで <URL> は ext:: で始まります。例:

"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"

パス /somerepo を持つリポジトリを、抽象名前空間アドレス /git-server でgitプロトコルを介してアクセスできるようにします。

"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