以下の内容はhttps://graziegrazie.hatenablog.com/entry/2025/07/20/163416より取得しました。


自己レポジトリにおける外部レポジトリの管理

ソフトウェア開発を行う時、すべてを自分で開発するのは非効率的です。まして大規模ソフトウェア開発を行う場合、全てを自分で開発するのは現実的ではありません。そこでOSSなどを活用する訳ですが、これまでは自己流で管理していました。本記事では、1つのレポジトリでどのように外部レポジトリを管理するとよいのか調べた結果をまとめてみます。

まとめ

端的に言えば下記のようになります。

  • 自己レポジトリ内にlibsやsubmodulesなどの、外部レポジトリをまとめるためのディレクトリを作成し、外部レポジトリはそこに集約する
  • 外部レポジトリに変更を加える場合は、外部レポジトリをforkし、そこに変更を加えて管理する
  • git addするときに使いたい各外部レポジトリのバージョン・タグをclone / checkoutしておくと、git clone --recurse-submodulesしたときに自動的にそのリビジョンが取得される
  • バージョンを明示的に知らせたい、頻繁に更新したい場合は、READMEにバージョン・タグを記載し、手動で取得してもらうとよさそう(私見

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し、そこにコミットするようにする必要がある。または別ブランチにコミットすることも考えられる。



以上の内容はhttps://graziegrazie.hatenablog.com/entry/2025/07/20/163416より取得しました。
このページはhttp://font.textar.tv/のウェブフォントを使用してます

不具合報告/要望等はこちらへお願いします。
モバイルやる夫Viewer Ver0.14