.repo/projects/
Android リポジトリ マニフェスト システムをしばらく使用した後、ディレクトリ内の裸のリポジトリの目的を理解したと思います。
@Fredrik プロジェクトによって既に回答されているように、によって作成された「クローン」に直接表されるリポジトリの別のコピーはありませんrepo
。実際、.git
クローン内のすべてのディレクトリの内容は、次のように単なるシンボリック リンクです。
$ ll development/.git/
total 452
drwxr-xr-x 2 bfh bfh 4096 2011-08-15 13:55 ./
drwxr-xr-x 20 bfh bfh 4096 2011-08-15 13:55 ../
lrwxrwxrwx 1 bfh bfh 43 2011-08-15 13:55 config -> ../../.repo/projects/development.git/config
lrwxrwxrwx 1 bfh bfh 48 2011-08-15 13:55 description -> ../../.repo/projects/development.git/description
-rw-r--r-- 1 bfh bfh 41 2011-08-15 13:55 HEAD
lrwxrwxrwx 1 bfh bfh 42 2011-08-15 13:55 hooks -> ../../.repo/projects/development.git/hooks/
-rw-r--r-- 1 bfh bfh 449008 2011-08-15 13:55 index
lrwxrwxrwx 1 bfh bfh 41 2011-08-15 13:55 info -> ../../.repo/projects/development.git/info/
lrwxrwxrwx 1 bfh bfh 41 2011-08-15 13:55 logs -> ../../.repo/projects/development.git/logs/
lrwxrwxrwx 1 bfh bfh 44 2011-08-15 13:55 objects -> ../../.repo/projects/development.git/objects/
lrwxrwxrwx 1 bfh bfh 48 2011-08-15 13:55 packed-refs -> ../../.repo/projects/development.git/packed-refs
lrwxrwxrwx 1 bfh bfh 41 2011-08-15 13:55 refs -> ../../.repo/projects/development.git/refs/
lrwxrwxrwx 1 bfh bfh 45 2011-08-15 13:55 rr-cache -> ../../.repo/projects/development.git/rr-cache/
lrwxrwxrwx 1 bfh bfh 40 2011-08-15 13:55 svn -> ../../.repo/projects/development.git/svn
したがって、実際の git リポジトリはクローン内で 1 回だけ表されます。
裸の git と通常の git を保持する理由は、マニフェスト システムの動作方法のためです。マニフェスト システムは、チェックアウトされる git のコレクションと、チェックアウトされるバージョンを指定する方法です。マニフェスト ファイル自体は git で管理されており、repo コマンドを使用すると、そのマニフェスト git のブランチを自由に変更できます。
したがって、マニフェスト ファイルで現在選択されているものに応じて Git を削除および追加する (高速) 方法を可能にするために、リポジトリは、これまでにクローンしたすべての git を.repo/projects
フォルダーに保持し、それらを「通常の」クローンにのみコピーすることができます。それらがマニフェスト ファイルの現在のブランチで選択されている場合は、領域。