Git通过哈希获取特定提交

时间:2013-01-17 00:07:02

标签: git

Git允许从任何给定的远程和引用中获取,例如

git fetch <remote-url> <reference>

因此,无需添加遥控器或创建分支即可获得这些提交的提交。

但这只适用于引用,例如分支名称或标记,但不适用于特定的哈希值,因此不能直接在任何地方引用。

有没有办法从远程获取特定的提交?

3 个答案:

答案 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>是全长参考