Как мне проверить конкретный коммит от Github? - PullRequest
0 голосов
/ 15 февраля 2019

Я пытаюсь оформить заказ 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 голосов
/ 15 февраля 2019

Проблема здесь в том, что 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 под именем ветви py37 (наведите курсор на некоторые изметки, и вы увидите немного больше подробностей во всплывающих окнах.)

Однако, когда кто-то делает запрос на извлечение GitHub, эти коммиты становятся доступны через целевой репозиторий.,Это займет немного хитрости:

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, которое я здесь использовал, не очень хорошее, я отредактировал его так, чтобы оно читалось refs/heads/pr1762.)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...