🚘

【Git】Submoduleのコンフリクト解消方法

2024/02/16に公開

はじめに

普段Gitの操作をVSCode上で行っているため、Submoduleのコンフリクト解消がわからず苦労したので、その解消法をメモとして残しておきます。
基本的にコマンドライン上で直接処理することが可能です!

解消法

Gitのサブモジュールでコンフリクトが発生した場合、以下のステップで解消を図ります。

  1. コンフリクトが発生しているサブモジュールの特定
    最初に、どのサブモジュールでコンフリクトが発生しているかを確認します。
git status
  1. サブモジュールのコンフリクト解消
    次に、以下のコマンドを使用してサブモジュールのコンフリクトを解消します。
git reset HEAD <submoduleの相対パス>

これにより、サブモジュールの状態が最後にコミットされた状態にリセットされます。

  1. サブモジュールのブランチ切り替え
    コンフリクトを解消した後、サブモジュールを適切なブランチに切り替えます。
cd <submoduleの相対パス>
git checkout <コミットしたいブランチ名>
cd -

このステップにより、サブモジュールは必要なブランチに正しく配置されます。

終わりに

これ以外にも、様々なコンフリクトの解消方法があると思います。実際に使用する際はプロジェクトやチームのニーズに応じて、他の方法やツールを探索することも重要です。

参考

https://stackoverflow.com/questions/826715/how-do-i-manage-conflicts-with-git-submodules

Discussion