ソフトウェア開発を行う時、すべてを自分で開発するのは非効率的です。まして大規模ソフトウェア開発を行う場合、全てを自分で開発するのは現実的ではありません。そこでOSSなどを活用する訳ですが、これまでは自己流で管理していました。本記事では、1つのレポジトリでどのように外部レポジトリを管理するとよいのか調べた結果をまとめてみます。
まとめ
端的に言えば下記のようになります。
submoduleの追加・管理の方法
1. git submodule add "URL" "path"
URLは、submoduleとして追加したいレポジトリの場所です。pathは、ローカルマシン上でレポジトリを配置するディレクトのパスを意味します。
2. (スキップ可能)使いたいブランチやタグを取得する
1だけだとHEADがを取得してしまうので、
git branch -b
か、
git fetch --tags | git checkout -b タグ名
を行い、必要なブランチかリビジョンを取得する。
注意点
- submoduleは、外部のレポジトリを参照しているだけに過ぎないため、submoduleを変更してコミットしようとすると、作成した自己レポジトリではなく、外部レポジトリにコミットしてしまう点に注意。そのため変更する場合は、元の外部レポジトリからforkし、そこにコミットするようにする必要がある。または別ブランチにコミットすることも考えられる。