2017-12-13 27 views
1

私はいくつかのgitサブモジュールを追加しました。これらはgitmodulesで構成されています。私はサブモジュールの特定のコミットに興味があります。したがって私はこれらのコミットをコミットし、gitサブモジュールの状態で見ることができます。 セイクローンの浅いサブモジュール

[submodule "pcl"] 
     path = libs/pcl 
     url = https://github.com/PointCloudLibrary/pcl.git 

ためのサブモジュールのステータスが757e28a75a0c6c0413085a2af070670828a48527 LIBS/PCLを示します。 これは、上記SHA1はしかし、私の問題は、私は、私は以降757e28a75a0c6c0413085a2af070670828a48527からコミット中にだけ興味があるため、完全にサブモジュールのPCLのクローンを作成したいいけないということですgit submodule update --init

を実行した後にチェックアウトされることを意味します。 .gitmodulesファイルに深さパラメータなどを書くことでこれを達成する方法はありますか?

私はいくつかの投稿を見ましたが、大部分はgit add submoduleを行うことを提案しています。すでにこれを行っているので、各サブモジュールの深度パラメータを使って.gitmoduleファイルを編集する方法があります。

git clone --depth 10 --shallow-submodules <repo> 

は私の意見では、その後10のメインブランチのコミットおよびすべてのサブモジュールのマスターブランチの先端を引き出します。私の理解は正しいのですか?

答えて

0

は問題の回避策を見つけたので、他の人に役立つ可能性があります。

目標は、浅いクローンサブモジュールであった。以下の手順に従って、プロジェクト(サブモジュールを含む)のサイズが30 GBから2 GBに縮小されました。このプロジェクトは、opencv、ffmpeg、pcl、mrptなど、常に開発されている多くのサブモジュールで構成されています。

のように、サブモジュール名、パス、およびURL(これは特別な設定オプション)で構成されています。
[submodule "pcl"] 
     path = libs/pcl 
     url = https://github.com/PointCloudLibrary/pcl.git 

したがって、クローニングを開始し、次にサブモジュールを初期化し、最後にサブモジュールを更新します。エラーの場合に

git clone --depth 10 <repo> 
git submodule init 
git submodule update --depth 10 

- エラー:サーバーは100

git submodule update --depth 100 <submodule> # for those modules, whose depth doesnt match. try with different depths. 

成功した場合、デフォルト

に進み、未宣伝目的SHAための要求を許可例えば、この特定のモジュールの深さを増加させません
git submodule update --depth 10 

誰かや他の解決策が大歓迎です。

関連する問題