2013-01-17 133 views
13

GIT中允許從任何給定的遠程和參考抓取,例如GIT中取由散列特定​​提交

git fetch <remote-url> <reference> 

使那些給定的提交可用,而無需添加遙控器或創建新的分支。

但是,這隻適用於引用,如分支名稱或標記,但不適用於特定的散列,因此不提供任何直接引用。

有沒有辦法從遠程獲取特定的提交?

回答

8

不可以。根據手冊,git fetch需要refspec,其中最簡單的形式是ref,並且裸露的SHA-1不是ref。也就是說,提交必須在遙控器上有一個名稱(分支,標籤),以便您能夠fetch它。

4

請參閱「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,爲了讓一個提交提取)。

相關問題