多くのベンダーのObjective-Cライブラリ(たとえばfacebook-ios-sdk
)は、リポジトリのファイル/ディレクトリの特定のサブセットをXcodeプロジェクトにコピーするように指示します。これに関する1つの問題は、ベンダーコードのリビジョンがわからないことです。もう1つは、ベンダーコードに変更を加えた場合、Gitを介して変更を提供するのは簡単ではないということです。
解決策として、各ベンダーライブラリをプロジェクトのリポジトリのGitサブモジュールとして追加し、いくつかの追加設定を追加します(たとえば、.gitmodules
ファイル内)。このように、別の人が私のプロジェクトを複製して実行したgit submodule update --init
場合、それらのリポジトリとサブモジュールは、私が設定したのと同じデフォルト設定を使用するため、私のものと同じ状態になります。
- スパースチェックアウト:サブモジュールの特定のファイルのみをチェックアウトします。
- 浅いクローン:サブモジュールの特定のSHA1のみをクローンします。
Gitサブモジュールに上記の設定を設定するにはどうすればよいですか?