如何检查来自Github的特定提交?

时间:2019-02-15 15:55:22

标签: git github

我正在尝试结帐https://github.com/Miserlou/Zappa/commit/54a6fa4542a4ae26d5a8155b63a50701ab69c1f8

$ git clone https://github.com/Miserlou/Zappa.git
Cloning into 'Zappa'...
remote: Enumerating objects: 15029, done.
remote: Total 15029 (delta 0), reused 0 (delta 0), pack-reused 15029
Receiving objects: 100% (15029/15029), 4.71 MiB | 932.00 KiB/s, done.
Resolving deltas: 100% (11418/11418), done.
$ cd Zappa
$ git checkout 54a6fa4542a4ae26d5a8155b63a50701ab69c1f8
fatal: reference is not a tree: 54a6fa4542a4ae26d5a8155b63a50701ab69c1f8

我在做什么错了?

1 个答案:

答案 0 :(得分:6)

这里的问题是54a6fa4542a4ae26d5a8155b63a50701ab69c1f8仅位于https://github.com/Miserlou/Zappa仓库中的一半。

也就是说,如果克隆https://github.com/Miserlou/Zappa,您将获得一个有效的存储库,其中的提交数少于3000。 54a6fa4542a4ae26d5a8155b63a50701ab69c1f8不是其中的一项提交。

实际上,54a6fa4542a4ae26d5a8155b63a50701ab69c1f8另一个存储库中的提交。您可以在https://github.com/Miserlou/Zappa/pull/1762中看到此内容,其中显示以下内容:

 Open   purificant wants to merge 1 commit into Miserlou:master from purificant:py37 

因此,此提交更恰当地放在分支名称为purificant的{​​{1}}所拥有的fork中(将鼠标悬停在某些标签上,您将在弹出窗口中看到更多详细信息)。 / p>

但是,一旦有人在GitHub上发出拉取请求,这些提交 也可以通过目标存储库使用。只是需要一些技巧:

py37

现在git fetch origin refs/pull/1762/head:refs/heads/pr1762 git show 54a6fa4542a4ae26d5a8155b63a50701ab69c1f8工作。

git checkout 54a6fa4542a4ae26d5a8155b63a50701ab69c1f8

(我不清楚不是我的人如何解决这个问题:-))

(我在这里使用的原始名称$ git checkout 54a6fa4542a4ae26d5a8155b63a50701ab69c1f8 Note: checking out '54a6fa4542a4ae26d5a8155b63a50701ab69c1f8'. You are in 'detached HEAD' state. You can look around, make experimental changes and commit them, and you can discard any commits you make in this state without impacting any branches by performing another checkout. If you want to create a new branch to retain commits you create, you may do so (now or later) by using -b with the checkout command again. Example: git checkout -b <new-branch-name> HEAD is now at 54a6fa4 python3.7 support 不好用,我已经将其编辑为读取pr1762。)