私はgitサポートツールで認識されたバグを追跡するためにいくつかの作業をしています。実験的な目的でリポジトリをコピーしたいことがあります。私はハードリンクを元のリポジトリオブジェクトデータベースに作成して、同一のオブジェクトの複数のコピーを同じSHA値で格納するディスクスペースを浪費しないようにしたいと思います。 gitのクローンはうまくこれを達成し、残念ながら私はgitのクローンは私に元のリポジトリのように設定し、リポジトリの新しいコピーを与えるようにする方法を見つけるように見えることはできません。スペースを浪費することなくgitリポジトリをコピー/クローンするにはどうすればいいですか?
- クローンポイントバックコピーリポジトリへその原点として、私はそれがコピーされたリポジトリ
- クローンは1つのブランチのみで巻き上げると同じ起源を持つようにしたいが、私はそれがコピーされたリポジトリ
Iの枝のすべてを持ちたいですgit clone --mirrorを使ってこれを改善することもできますが、それは裸のリポジトリを作成するためだけに機能し、私が実験しているリポジトリ私がデバッグしようとしているサポートツールは、裸のリポジトリでは機能しません。
私は、元のオブジェクトデータベースへのハードリンクで新しいオブジェクトデータベースを作成し、元の.gitディレクトリから他のものをすべてコピーしてからgitチェックアウトを実行するための簡単なシェルループを作成することを考えました。これはエラーが発生しやすいほど複雑であり、私はこの種の低レベル手術を正しく実行するのに十分な知識がなく、微妙なエラーのあるリポジトリを構築すると懸念しています。理論的には、このアプローチは有効でしょうか?
もっと良い方法は、私が欲しいことをするためにクローンをgitに渡す方法ですか?
新しいリポジトリを作成する方法はありますか?オブジェクトデータベースが別のディレクトリにあることを伝えますが、基本的に元のリポジトリからオブジェクトデータベースを共有するように伝えますか?
上記のいずれにも該当しない場合は、大量のスペースを消費して時間がかかるcp -prのみが残っています。