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