GIT中允許從任何給定的遠程和參考抓取,例如GIT中取由散列特定提交
git fetch <remote-url> <reference>
使那些給定的提交可用,而無需添加遙控器或創建新的分支。
但是,這隻適用於引用,如分支名稱或標記,但不適用於特定的散列,因此不提供任何直接引用。
有沒有辦法從遠程獲取特定的提交?
GIT中允許從任何給定的遠程和參考抓取,例如GIT中取由散列特定提交
git fetch <remote-url> <reference>
使那些給定的提交可用,而無需添加遙控器或創建新的分支。
但是,這隻適用於引用,如分支名稱或標記,但不適用於特定的散列,因此不提供任何直接引用。
有沒有辦法從遠程獲取特定的提交?
不可以。根據手冊,git fetch
需要refspec,其中最簡單的形式是ref,並且裸露的SHA-1不是ref。也就是說,提交必須在遙控器上有一個名稱(分支,標籤),以便您能夠fetch
它。
請參閱「Pull a specific commit from a remote git repository」:
使用Git 2.5(2015年7月),你將能夠做到:
git fetch --depth=1 <a/remote/repo.git> $SHA1
git cat-file commit $SHA1
如果SHA1是‘可達’從遠程回購的枝梢之一,那麼你可以取它。
買者:你需要一個Git 2.5遠程回購服務器雖然,這將處理uploadpack.allowReachableSHA1InWant
配置(和你需要的配置設置爲true
,爲了讓一個提交提取)。