Pourquoi «Git Clone» emballe-t-il la base de données d'objets lors du passage d'un fichier local: /// URL?

StackOverflow https://stackoverflow.com/questions/8897556

Question

Les suivants décrivent les commandes bash à exécuter afin de reproduire le comportement observé. Bien que ceux-ci aient été courus msysgit, Je soupçonne que le résultat devrait être similaire sur un environnement * nix.

Configurer le référentiel source

$ mkdir main && cd main
$ git init .
Initialized empty Git repository in d:/temp/main/.git/
$ echo a > a.txt
$ git add . && git commit -m "Initial commit"
[master (root-commit) e1ec355] Initial commit
 1 files changed, 1 insertions(+), 0 deletions(-)
 create mode 100644 a.txt

Clone le référentiel source à l'aide d'un fichier local: /// URL

$ cd ..
$ mkdir clonefromfileurl && cd clonefromfileurl
$ git clone file:///d:/temp/main
Cloning into 'main'...
remote: Counting objects: 3, done.
Receiving objects: 100% (3/3), done.
remote: Total 3 (delta 0), reused 0 (delta 0)

Clone le référentiel source à l'aide d'un chemin de fichier local

$ cd ..
$ mkdir clonefrompath && cd clonefrompath
$ git clone /d:/temp/main
Cloning into 'main'...
done.

Selon Wikipédia, une URL de fichier avec une triple slash implique une ressource locale.

Cependant, lors du clonage à travers un local file:/// URL, la base de données d'objets est emballée avant d'être transmise (copiée?). Ce n'est pas le cas lorsque l'emplacement du référentiel source est exprimé comme un chemin local.

Pourquoi Git se comporte-t-il de différentes manières étant donné que la source et le repo cible sont hébergés sur localhost?

Pas de solution correcte

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top