Git允许从任何给定的远程和引用中获取,例如
git fetch <remote-url> <reference>
因此,无需添加遥控器或创建分支即可获得这些提交的提交。
但这只适用于引用,例如分支名称或标记,但不适用于特定的哈希值,因此不能直接在任何地方引用。
有没有办法从远程获取特定的提交?
答案 0 :(得分:10)
没有。根据手册,git fetch
需要refspec,其中最简单的形式是ref,而裸SHA-1不是ref。即,提交必须在遥控器上有一个名称(分支,标签),以便能够fetch
。
答案 1 :(得分:7)
请参阅“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
配置(您需要将该配置设置为{ {1}},以便允许单次提交)。
答案 2 :(得分:6)
今天我尝试过:
git fetch origin <commit-hash>
它就像一种魅力! (git版本2.20.1)
只需确保<commit-hash>
是全长参考