3

現在、サブモジュールを含むかなり大きな git リポジトリ (約 10 GB) があり、サーバーからのクローン作成にはかなりの時間がかかります。プロジェクト ディレクトリにローカル コピーを保持し、それをビルドのオリジンとして使用したいと考えています。プロジェクト ディレクトリは、NFS マウント ドライブに保存されます。

--local または単に /path/to/repo を使用してクローンを作成すると、Git は元のリポジトリへのハード リンクを作成しますが、サブモジュール リポジトリへのハード リンクを作成しないようです。私は期待していただろう

git clone --local --recursive /path/to/origin mycopy

すべてのリポジトリのハードリンクを作成します。サブモジュールにもハードリンクを使用するように git に指示できますか?

4

1 に答える 1

0

これは buildin コマンドでは実行できないと思いますが、 (または同等の) コマンド.gitmodulesの前にファイルを変更し、後で元のファイルを復元できます。git submodule init

git clone --local /path/to/origin mycopy
sed -i '/path = /{h;s,.* = ,,;x};/url = /{s, = .*, = /path/to/origin,;G;s,\n,,}' mycopy/.gitmodules
git -C mycopy submodule update --init
git -C mycopy checkout -- .gitmodules
于 2018-01-03T16:06:05.707 に答える