Git でサブモジュールを削除する
このチュートリアルでは、git でサブモジュールを削除する方法を示します。
ソフトウェアプロジェクトを開発するとき、私たちはプロジェクトに必要な外部フレームワークとライブラリを使用することがよくあります。これらのフレームワークとライブラリはオープンソースであり、git リポジトリに保持されている場合があります。
このような外部ライブラリのソースコードを、git リポジトリのプロジェクトディレクトリに保持したい場合があります。git のサブモジュール機能を使用すると、個別の Git リポジトリであるこのような外部ソースをプロジェクトの Git リポジトリのサブディレクトリとして保持できます。
その後、プロジェクトに関連しなくなった可能性があるため、このような Git サブモジュールを削除することを決定する場合があります。
例を挙げて説明します。
Git でサブモジュールを削除する
ソフトウェアプロジェクトで作業するとき、ライブラリの外部ソースを使用する必要があることがよくあります。外部ライブラリは、サードパーティまたは別のチームによって開発される場合があります。
このような外部ライブラリは、別の Git リポジトリで追跡できます。
Git のサブモジュール機能を使用して、このような外部 Git リポジトリをプロジェクトの Git リポジトリのサブディレクトリとして組み込むことができます。したがって、別のリポジトリをプロジェクトに複製し、それぞれのコミットを個別に保持できます。
通常、このような外部ライブラリを置き換えたり削除したりする場合があります。私たちのプロジェクトはもはやそのような外部ライブラリを必要としないと感じるかもしれません。
したがって、プロジェクトの Git リポジトリから外部ライブラリを削除することにしました。このために、外部ライブラリの Git サブモジュールを削除する必要があります。
プロジェクトの Git リポジトリにサブモジュール good-ext-lib
が存在するとします。ここで、サブモジュール good-ext-lib
を Git リポジトリとファイルシステムから削除する必要があります。
サブモジュールを削除するには、次のように Git コマンドを実行する必要があります。
$ git submodule deinit -f path/to/good-ext-lib
$ rm -rf .git/modules/path/to/good-ext-lib
$ git rm -f path/to/good-ext-lib
コマンド git submodule deninit
は、サブモジュール good-ext-lib
の登録を解除します。git/config
ファイルから submodule.$name
セクション全体を削除します。また、サブモジュールの作業ツリーを削除します。
.git
フォルダーに good-ext-lib
サブモジュールパスを指定したコマンド rm -rf
は、プロジェクトの .git/modules
ディレクトリからサブモジュールディレクトリを削除します。
プロジェクトディレクトリの good-ext-lib
サブモジュールのパスを指定したコマンド git rm
は、スーパープロジェクト(私たちのプロジェクト)の追跡データを削除します。gitlink
エントリを削除します。また、.gitmodules
ファイルに存在するサブモジュールセクションを削除し、ファイルをステージングします。
最後に、次のように good-ext-lib
サブモジュールの削除をコミットする必要があります。
$ git commit -m "removed submodule good-ext-lib"
したがって、Git のプロジェクトディレクトリから good-ext-lib
サブモジュールを削除しました。
したがって、Git でサブモジュールを削除する方法を示しました。
詳細については、をご覧ください-