10

При выполнении git clone репозитория через SSH или HTTP вы получаете вывод, который выглядит примерно так:

Cloning into 'some_directory'...
remote: Counting objects: 7, done.
remote: Compressing objects: 100% (5/5), done.
remote: Total 7 (delta 0), reused 5 (delta 0), pack-reused 0
Unpacking objects: 100% (7/7), done.
Checking connectivity... done.

Я заинтересован в этом последнем шаге "Проверка подключения". Это происходит после того, как репо и все его метаданные были загружены, т. Е. После того, как закончилось любое подключение к Интернету.

Что именно этот шаг процесса выполняет?

1 ответ1

13

Я думаю, что слово « connectivity здесь не имеет ничего общего с подключением к сети. Сообщение отображается после того, как все данные уже получены с git-сервера.

Можно найти некоторые подсказки в источниках git. В файле connected.c есть следующий комментарий:

/*
 * If we feed all the commits we want to verify to this command
 *
 *  $ git rev-list --objects --stdin --not --all
 *
 * and if it does not error out, that means everything reachable from
 * these commits locally exists and is connected to our existing refs.
 * Note that this does _not_ validate the individual objects.
 *
 * Returns 0 if everything is connected, non-zero otherwise.
 */

Это связано с функцией check_everything_connected_real которая вызывается после Checking connectivity... отображается сообщение.

Таким образом, это в основном означает, что git проверяет, все ли объекты были получены правильно (связаны с существующими ссылками).

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