サブモジュールを削除するにはどうすればいいですか? 質問する

サブモジュールを削除するにはどうすればいいですか? 質問する

Git サブモジュールを削除するにはどうすればいいですか? なぜできないのですかgit submodule rm module_name?

ベストアンサー1

最新の Git (2022 年に更新されたインストールでこれを書いていますgit) では、これはかなり簡単になりました。

  • を実行しgit rm <path-to-submodule>、コミットします

これにより、 のファイルツリー<path-to-submodule>と、.gitmodulesファイル内のサブモジュールのエントリが削除されます。つまり、リポジトリ内のサブモジュールのすべてのトレースが削除されます。

としてドキュメントノートただし、.gitサブモジュールの dir は (modules/メインプロジェクトの.gitdir のディレクトリ内に) 保持されます。これは、「別のリポジトリから取得することなく過去のコミットをチェックアウトできるようにするため」です。
それでもこの情報を削除したい場合は、 でサブモジュールのディレクトリを手動で削除し.git/modules/、ファイル でサブモジュールのエントリを削除します.git/config。これらの手順は、次のコマンドを使用して自動化できます。

  • rm -rf .git/modules/<path-to-submodule>、 そして
  • git config --remove-section submodule.<path-to-submodule>


古いコミュニティ Wiki の説明:

ページからGit サブモジュール チュートリアル:

サブモジュールを削除するには、次の手順を実行する必要があります。

  1. ファイルから関連するセクションを削除します.gitmodules
  2. 変更を段階的に実行します.gitmodules
    git add .gitmodules
  3. から関連するセクションを削除します.git/config
  4. 作業ツリーからサブモジュール ファイルを削除し、index:
    git rm --cached path_to_submodule(末尾のスラッシュなし) を追加します。
  5. サブモジュールの.gitディレクトリを削除します。
    rm -rf .git/modules/path_to_submodule
  6. 変更をコミットします。
    git commit -m "Removed submodule <name>"
  7. 追跡されていないサブモジュール ファイルを削除します。
    rm -rf path_to_submodule

参照:代替手順は以下のとおりです

おすすめ記事