fatal: reference is not a tree: の解決策
結論から言うとものすごーーーーーーくアホなことしました。
僕のPCでSubmoduleのソースを修正し、コミット。 親モジュールでSubmoduleの変更をコミット、リモートにPush。
さあ、もう察しの言い方は気づいていると思います。 答えは後ほど。
何が起きたか。 他の僕以外のPCで最新を取得しようとして、Submoduleの更新ができない。 なぜだ!?
git submodule update
しても、以下のエラーが出ちゃいます。
fatal: reference is not a tree: da5895a5e0d1f827ccc0b94a0fe51f385875b4f8
Unable to checkout 'da5895a5e0d1f827ccc0b94a0fe51f385875b4f8' in submodule path 'submodule'
エラーメッセージをググってみると git reset しろだの、git add からの commit、pushしろだの書かれていますが、 解決策はそうではありませんでした。 たった一つシンプルな事でした。
僕がSubmoduleの修正をPushしていませんでした
はい。ほんとーーーーーーにごめんなさい。 海より深く反省します。
メソッド追加して呼び出したソースをPushしたのにメソッド追加した側をPushしてないからコンパイルエラー的な。 こんな感じですね。
Submoduleって非常に便利だな、と思うんだけど意外と使いどころが難しいというか、ピーキーだなと思ってます。 まだ慣れてないだと思いますけど。 まあそんなわけでみなさん、気をつけようね☆