GitのSubmoduleのディレクトリを動かそうとして失敗したので備忘
状況
- Gitレポジトリに登録したSubmoduleを移動させたい
- 何を思ったのか、手作業で移動させてしまった
- アホなのでその移動をコミットした
- ファミマのバナナフラッペをキメてたので、その後普通に作業をして、コミットログがいくつか溜まっている(全部Resetとかかけてやり直すの無理)
- 上記のようなことがあったので、Submoduleに登録していたはずのファイルがすべてレポジトリ
やりたいこと
できればつらい思いをせずに移動後のあれそれをSubmoduleとしてまた扱えるようにしたい
やったこと
参考にしたのはこちらのページ
まずは方法1にある通りのことを一通り行った。
しかし手順7-8あたりで、書いてあるような動作をしなかった(renamedにならない)ため、この方式をあきらめる
次に方法2を見たが、Submodule自体を移動してしまっているため、方法2で示されている手順を追うことができなかった。
結論 - 手順
- まず現状を受け入れる
- ブランチを切る(よくわからない作業をするため)
.gitmodules
の中身を
削除してコミットgit rm -r your/submodule/dir
を実行(ディレクトリを消したいので --cachedは使わない )し、コミット.git/config
からSubmodule関連の記述を削除- 作業ブランチに戻ってmerge
上記のような手順でたぶん行けます。