2013-01-17 67 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,为了让一个提交提取)。

相关问题