設定與組態
取得與建立專案
基本快照
分支與合併
分享與更新專案
檢視與比較
修補
除錯
電子郵件
外部系統
伺服器管理
指南
管理
底層命令
- 2.43.1 → 2.47.0 無變更
-
2.43.0
11/20/23
- 2.22.1 → 2.42.3 無變更
-
2.22.0
06/07/19
- 2.18.1 → 2.21.4 無變更
-
2.18.0
06/21/18
- 2.3.10 → 2.17.6 無變更
-
2.2.3
09/04/15
- 2.1.4 無變更
-
2.0.5
12/17/14
描述
這個遠端輔助程式使用指定的 <command> 來連線到遠端的 Git 伺服器。
寫入指定 <command> 的 stdin 的資料會被假設為傳送到 git:// 伺服器、git-upload-pack、git-receive-pack 或 git-upload-archive (取決於情況),而從 <command> 的 stdout 讀取的資料會被假設為從相同服務接收。
命令和參數由未逸脫的空格分隔。
以下序列具有特殊含義
- '% '
-
命令或參數中的文字空格。
- %%
-
文字百分比符號。
- %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 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"
-
表示儲存庫的路徑為 /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] 套件的一部分