web-dev-qa-db-ja.com

リモートリポジトリをローカルに複製する場合、git cloneは一時ファイルをどこに保存しますか?

サイズ500MBのリポジトリのクローンを作成しようとしています。コマンドを実行すると

git clone https://repository.com/repo dir

ステータスのクローン作成、速度、およびクローン作成されたデータの量(250MiB | 2MiB/s)が表示されます。ただし、クローンが作成される実際のディレクトリは、クローンが完了するまで空のままになります(.gitを除く)。その間、クローンファイルはどこに保存されますか?

1
LaraFlow

リポジトリは2つの部分で構成されています。

  • 参照(名前からハッシュへのマッ​​ピング)–メモリに保持されます。
  • パック(圧縮された履歴アーカイブ)– .git/objects/pack/tmp_pack_<random>に保存されます。

完全なパックファイルがダウンロードされると、同じディレクトリでpack-<id>.packに名前が変更されます。ワークツリーのファイルは個別にダウンロードされません。パックファイル(またはより一般的には.git/objects/)に格納されているオブジェクトを使用して、最上位のコミットから抽出されます。

0
user1686