19

Я пытаюсь сделать заказ из GitHub, и я получил это сообщение об ошибке:

[user@arch ~]$ git clone --recursive https://github.com/simsong/tcpflow.git
Cloning into 'tcpflow'...
The authenticity of host 'github.com (192.30.253.113)' can't be established.
RSA key fingerprint is SHA256:nThbg6kXUpJWGl7E1IGOCspRomTxdCARLviKw6E5SY8.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added 'github.com,192.30.253.113' (RSA) to the list of known hosts.
remote: Counting objects: 4190, done.
remote: Compressing objects: 100% (32/32), done.
remote: Total 4190 (delta 21), reused 29 (delta 12), pack-reused 4146
Receiving objects: 100% (4190/4190), 50.27 MiB | 2.21 MiB/s, done.
Resolving deltas: 100% (2954/2954), done.
Submodule 'src/be13_api' (https://github.com/simsong/be13_api.git) registered for path 'src/be13_api'
Submodule 'src/dfxml' (https://github.com/simsong/dfxml.git) registered for path 'src/dfxml'
Submodule 'src/http-parser' (https://github.com/nodejs/http-parser.git) registered for path 'src/http-parser'
Cloning into '/home/user/tcpflow/src/be13_api'...
remote: Counting objects: 1203, done.
remote: Compressing objects: 100% (8/8), done.
remote: Total 1203 (delta 2), reused 5 (delta 1), pack-reused 1194
Receiving objects: 100% (1203/1203), 477.47 KiB | 1.96 MiB/s, done.
Resolving deltas: 100% (821/821), done.
Cloning into '/home/user/tcpflow/src/dfxml'...
remote: Counting objects: 1929, done.
remote: Total 1929 (delta 0), reused 0 (delta 0), pack-reused 1929
Receiving objects: 100% (1929/1929), 572.09 KiB | 2.89 MiB/s, done.
Resolving deltas: 100% (1294/1294), done.
Cloning into '/home/user/tcpflow/src/http-parser'...
remote: Counting objects: 1487, done.
remote: Total 1487 (delta 0), reused 0 (delta 0), pack-reused 1487
Receiving objects: 100% (1487/1487), 667.24 KiB | 2.46 MiB/s, done.
Resolving deltas: 100% (916/916), done.
Submodule path 'src/be13_api': checked out 'c81521d768bb78499c069fcd7c47adc8eee0350c'
Submodule path 'src/dfxml': checked out 'c31224626cf5f6678d42cbcfbfcd4e6191c9a864'
error: Server does not allow request for unadvertised object 5bbcdc5df9d01b521e8da011bab0da70bdec3653
Fetched in submodule path 'src/http-parser', but it did not contain 5bbcdc5df9d01b521e8da011bab0da70bdec3653. Direct fetching of that commit failed.
[user@arch ~]$

Так что я поддерживаю эти репозитории. Src /http-parser является ответвлением другого репозитория, и сопровождающие этого репозитория последовательно не принимают мои запросы на получение (без объяснения причин), чтобы добавить несколько автоматически сгенерированных файлов в файл .gitignore . Но я не думаю, что это проблема здесь.

1 ответ1

5

jgit - Что такое рекламируемые git реферы? - Переполнение стека:

Во время выборки сервер может перечислить ссылки, которые у него есть и которые клиент может пожелать получить. Это рекламируемые ссылки.

  • Похоже, вы не можете напрямую получить какой-либо конкретный коммит с сервера, только ссылки (то есть ветки и теги). Или, скорее, что серверы Github настроены на запрет таких запросов.
  • Таким образом, если вы хотите получить конкретный коммит с параметром --depth, он должен быть не более <depth>-1 коммитов от выбранной ссылки (которая является ветвью / тегом, указанным в метаданных подмодуля)

    Как правило, люди советуют просто установить depth на некоторое количество, достаточно большое, но все же намного меньшее, чем общее количество коммитов в репо - например, 50 или 100 . Например, 50 - это то, что Трэвис использует при создании начального клона для проекта.

Если вы не обновляете подмодуль с помощью --depth , то если вам не удастся найти коммит, это будет означать:

  • дерево подмодуля находится в "мелком" состоянии, и вышеизложенное применимо (возможно только тогда, когда оно было ранее обновлено с помощью --depth или его запись в .gitmodules имеет shallow = true)
  • коммит не находится на ветке, которую использует подмодуль
  • фиксация вообще отсутствует в репо подмодуля:
    • либо кто-то допустил ошибку,
    • или он когда-то был там, но был удален принудительным нажатием

Для записи, в вашем конкретном случае это был последний случай: commit 5bbcdc5df9d01b521e8da011bab0da70bdec3653 не находится в репозитории https://github.com/simsong/http-parser.git .

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .