設定和配置
獲取和建立專案
基本快照
分支與合併
共享和更新專案
檢查和比較
打補丁
除錯
電子郵件
外部系統
伺服器管理
指南
管理
底層命令
- 2.43.1 → 2.52.0 無更改
-
2.43.0
2023-11-20
- 2.22.1 → 2.42.4 無更改
-
2.22.0
2019-06-07
- 2.18.1 → 2.21.4 無變更
-
2.18.0
2018-06-21
- 2.3.10 → 2.17.6 無更改
-
2.2.3
2015-09-04
- 2.1.4 無更改
-
2.0.5
2014-12-17
描述
此遠端輔助程式使用指定的 <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"
-
表示透過 git 協議在抽象名稱空間地址 /git-server 上可訪問的路徑為 /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" 訪問的路徑為
/repowithspaces的倉庫。協議流中傳遞的遠端伺服器的主機名將是 "foo"(這允許多個虛擬 Git 伺服器共享一個鏈路級別地址)。 - "ext::git-ssl foo.example /bar"
-
表示使用輔助程式 "git-ssl foo.example /bar" 訪問的倉庫。請求的型別可以透過環境變數(見上文)來確定。