GitのSubmoduleのディレクトリを動かそうとして失敗したので備忘

状況

  1. Gitレポジトリに登録したSubmoduleを移動させたい
  2. 何を思ったのか、手作業で移動させてしまった
  3. アホなのでその移動をコミットした
  4. ファミマのバナナフラッペをキメてたので、その後普通に作業をして、コミットログがいくつか溜まっている(全部Resetとかかけてやり直すの無理)
  5. 上記のようなことがあったので、Submoduleに登録していたはずのファイルがすべてレポジトリ

やりたいこと

できればつらい思いをせずに移動後のあれそれをSubmoduleとしてまた扱えるようにしたい

やったこと

参考にしたのはこちらのページ 

chaika.hatenablog.com

まずは方法1にある通りのことを一通り行った。

しかし手順7-8あたりで、書いてあるような動作をしなかった(renamedにならない)ため、この方式をあきらめる

次に方法2を見たが、Submodule自体を移動してしまっているため、方法2で示されている手順を追うことができなかった。

結論 - 手順

  1. まず現状を受け入れる
  2. ブランチを切る(よくわからない作業をするため)
  3. .gitmodules中身を 削除してコミット
  4. git rm -r your/submodule/dir を実行(ディレクトリを消したいので --cachedは使わない )し、コミット
  5. .git/config からSubmodule関連の記述を削除
  6. 作業ブランチに戻ってmerge

上記のような手順でたぶん行けます。