この情報は間違っていないけど、若干古いので「あれこれ」の方を参照してもらえると助かる。

背景

とあるプロジェクトで使っていたサブモジュールで見つかったバグを修正した際に、既存のサブモジュールからブランチを切って対応したが、この時、普通にコミットしただけだとコミットログにサブモジュールの変更が反映されなかったため。

暫く放置してたけど、当該プロジェクトに新機能を実装するためにクリーンアップする必要がでてきた。

対処

  1. オリジナルのライブラリをフォークして、そちらに対してバグフィックスを適用する。(パッチライブラリ)
  2. git-submoduleでパッチライブラリを新たに追加。
  3. ライブラリの参照先をオリジナルからパッチ側に修正。

補足

  • サブモジュールを追加
    $ git submodule add [github-path]

  • 間違ってファイルとか変更した時に、サブモジュールの内容を元に戻す場合
    サブモジュールの外側で「git checkout -- [file-path]」としても元に戻せない。
    $ git submodule update
    ※複数ライブラリがある場合は、全てに適用されるので注意。(個別に適用する方法は調べてない)

参考サイト

0