git-submodule を初めて使った。 昔 https://github.com/msakai/toysolver でSMT-LIB2パーサとして https://github.com/MfesGA/Smtlib を使おうとした際に、色々と変更が必要だったのでファイルをインポートしてきて変更してたのだけれど、 そうではなくフォークしたレポジトリで変更を加えて、そのレポジトリをsubmoduleとして参照するようにした。 この方が管理上も上流に変更を反映する際にも良さそうだと思ったので。

git-submodule は若干クセがあるけれど、まあ便利そう。
git-subtree というのもあるらしいけど、よく分かっていない。