かもメモ

自分の落ちた落とし穴に何度も落ちる人のメモ帳

Git submoduleの元のパス(url)を変えたい。

使いたいモジュールがgiyHubとかにあればgitsubmoduleでプロジェクトに取り込むことが多いのですが、プロジェクトによっては取り込んだモジュールを少しカスタマイズしたいとかって事が結構あります。
そんな時大元のリポジトリをForkしてカスタマイズしたものをgitで管理したくなるものです。そうするのであれば、submoduleで追加した子を一回消して再度Forkしたgitから取り込む方法もありますが、うっかり既にカスタマイズしちゃったよ!! なんてこともあるのです。まさに今!
既に手を加えてしまっているので、どうにかsubmoduleの向いているurlを変更できれば乗り切れそうです。

gitsubmodule関係のことは.gitmodulesというファイルに書かれているので、ここに書かれているパスを変更します。

[submodule "lib/neko"]
    path = lib/neko
    url = git@github.com:chaika-design/forked.git // Forkしたブランチに変更する

.git/config内にもsubmoduleのパスが書かれているのですが、これは次のコマンドを打てば.gitmodulesに書かれたurlに合わせて更新してくれます。

$ git submodule sync
Synchronizing submodule url for 'lib/neko'

[参考にしました]