Lorsque vous effectuez un git clone
repo sur SSH ou HTTP, vous obtenez une sortie qui ressemble à ceci:
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.
Je suis intéressé par cette dernière étape "Vérification de la connectivité". Cela se produit après que le dépôt et toutes ses métadonnées ont été téléchargées, c'est-à-dire bien après la fin de toute connexion Internet.
Qu'est-ce que cette étape du processus accomplit exactement?
Checking out files: 100% (2897/2897), done.
aprèsChecking connectivity
? Il semble queReceiving objects
cela ne signifie pas réellement recevoir le contenu. Par exemple, quand je clonégit
, je suis arrivé cette ligne de sortie:Receiving objects: 100% (199562/199562), 84.06 MiB | 3.90 MiB/s, done.
. Cependant, lorsque j'ai téléchargé un zip depuis GitHub, le répertoire décompressé n'était que de 28 Mio. Je ne sais pas ce que cela signifie, mais ce pourrait être le résumé de tous les engagements passés ou quelque chose comme ça.Réponses:
Je pense que le mot
connectivity
n'a rien à voir avec la connectivité réseau ici. Le message s'affiche une fois que toutes les données ont déjà été reçues du serveur git.On peut trouver quelques indices dans les sources git. Il y a le commentaire suivant dans le fichier connected.c :
Il est lié à la fonction
check_everything_connected_real
appelée après l' affichage duChecking connectivity...
message .Cela signifie donc que git vérifie si tous les objets ont été reçus correctement (sont connectés aux références existantes).
la source