LoginSignup
0
0

More than 5 years have passed since last update.

git submodule : Git リポジトリの下のディレクトリを Git で管理

Last updated at Posted at 2019-03-17

結論

Git リポジトリ main と sub を以下のディレクトリ構造にしたい時は

main/ <- Git で管理
|--- sub/ <- Git で管理
     |--- README.md
|--- README.md

以下のコマンドを打ちます。

$ cd main
$ git submodule add https://github.com/<ユーザ名>/sub.git sub

git submodule を使うことにした経緯

現在、深層学習を用いた自然言語処理に関する研究に取り組んでいます。
Python でコードを書いていて、Git リポジトリ research を以下のディレクトリ構造にしていました。
ちなみに、cookiecutter のデータサイエンス用テンプレート (https://github.com/drivendata/cookiecutter-data-science) を参考にしています。

research/
|--- data/
|--- models/
|--- notebooks/
|--- result/
|--- src/

ある日、教授から API として使えるようにしてくれとデプロイを頼まれました。
Flask を使おうと思い、以下のディレクトリ構造を考えました。

deploy/
|--- config/
|--- flask/
|--- models/
|--- src/

deploy/ を Git で管理しようと思うとともに、research/src/ と deploy/src/ を共有したいと思いました。
つまり、Git リポジトリ research の下のディレクトリ src/ を Git で管理したいと思いました。

「git 下 git」 と調べても有効な情報は得られませんでした。(「ディレクトリの下」と言いませんか?)
「git 中 git」 と調べると「Git submodule の基礎」(https://qiita.com/sotarok/items/0d525e568a6088f6f6bb) という記事が見つかりました。
非常に分かりやすい記事でした。

記事を読み、以下の手順を踏みました。
1. research/src/ を Git リポジトリとして登録
2. deploy/src/ を除いた deploy/ を Gitリポジトリとして登録
3. 以下のコマンドを打つ

$ cd deploy
$ git submodule add https://github.com/<ユーザ名>/src.git src

これで research/src/ と deploy/src/ の一方を編集しても、Git で簡単にもう一方に反映することができるようになりました。
めでたしめでたし。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0