ローカルの git リポジトリがあります。ディスク容量を節約するために、ハードリンクされたファイルによってローカル マシンにクローンを作成したいと考えています。どうすればいいですか?
1 に答える
Git リポジトリは、簡素化により、3 種類のファイルで作成されます。
データベースのようなオブジェクト(
$GIT_DIR/objects
): これらのオブジェクトは決して変更されません。一部は追加でき、一部は削除できますが、ファイルは決して変更されません。これは、多くのクローン間でそれらがまったく同じになる可能性があることを意味します。リポジトリ固有の構成とステータス(
$GIT_DIR
): これらのファイルには、リポジトリ固有の構成が含まれています ($GIT_DIR/info/*
例)。また、既知のブランチとは何か、チェックアウトされたブランチとは何かなど、リポジトリのステータスも保存します。リポジトリ間で共有できないか、設計に反します。作業コピー ファイル、または source : これらのファイルはほとんどの場合ソース コードであり、リポジトリごとに異なることを意図しています。それらは柔軟性があり、頻繁に変更されます (コードを頻繁に作成するため、またはブランチを頻繁に切り替えるため、あるいはその両方のため)。
実際のところ、変更されず、リポジトリ固有ではないファイルはオブジェクトファイルだけです。これらは、可能であれば (指定しなくても-l
) Git によって自動的にハードリンクされます。
同じドライブ上の 2 つのリポジトリにまったく同じステータスとファイルを持たせたい場合は、必ずシンボリック リンクを作成する必要があります。ただし、変更が多すぎてリポジトリに固有であるため、構成ファイルと作業コピー ファイルをハード リンクすることはできません。