ローカルファイル:/// urlに渡されたときに、「git clone」がオブジェクトデータベースを梱包するのはなぜですか?

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

質問

以下は、観測された動作を再現するために実行されるバッシュコマンドを説明します。それらは実行されていますが msysgit, 、結果は *nix環境で同様であるべきだと思います。

ソースリポジトリをセットアップします

$ 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

ローカルファイルを使用してソースリポジトリをクローンする:/// 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)

ローカルファイルパスを使用してソースリポジトリをクローンします

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

によると ウィキペディア, 、トリプルスラッシュを備えたファイルURLは、ローカルリソースを意味します。

ただし、ローカルをクローニングするとき file:/// URL、オブジェクトデータベースは送信される前に梱包されます(コピー?)。これは、ソースリポジトリの場所がローカルパスとして表される場合ではありません。

ソースとターゲットリポジトリの両方がホストされていることを考慮して、Gitがさまざまな方法で動作するのはなぜですか localhost?

正しい解決策はありません

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top