🐈⬛
【Git】submodule を親リポジトリに追加する
■ 想定している構成
シンプルに。
プロジェクト始動時で作成する手順を想定。
parent (メインリポジトリ)
- test.md (メインリポジトリ直下のファイル)
- child-1 (サブモジュール)
- test.md
- child-2 (サブモジュール)
- test.md
■ 手順
1. ディレクトリ作成
parent、child-1、child-2のディレクトリを作成する。
(例)
parent (メインリポジトリ)
- test.md
child-1 (サブモジュール)
- test.md
child-2 (サブモジュール)
- test.md
2. ローカルリポジトリ作成
parent, child-1, child-2 全て同じ手順
// 該当ディレクトリに移動
cd {該当ディレクトリ}
// ローカルリポジトリ作成
git init
3. リモートリポジトリ作成
コマンド or GitHubなどのプラットフォームを用いてリモートリポジトリを作成
リポジトリURL例)
https://github.com/{ユーザーID}/parent.git
https://github.com/{ユーザーID}/child-1.git
https://github.com/{ユーザーID}/child-2.git
4. ローカルリポジトリにリモートリポジトリを追加 & push
parent, child-1, child-2 全て同じ手順
// 該当ディレクトリに移動
cd {該当ディレクトリ}
// リモートリポジトリをローカルリポジトリに追加
git remote add origin https://github.com/{ユーザーID}/{リポジトリ名}.git
// ステージング コミット プッシュ
git add .
git commit -m 'first commit'
git push -u origin main
5. parent直下にサブモジュールを追加
// 該当ディレクトリに移動
cd {parentディレクトリ}
// サブモジュールを追加
git submodule add {対象のリポジトリURL} {ディレクトリ名}
// 例)
git submodule add https://github.com/{ユーザーID}/child-1.git child-1
git submodule add https://github.com/{ユーザーID}/child-2.git child-2
6. サブモジュールが追加された状態で親をリモートに反映
// 該当ディレクトリに移動
cd {parentディレクトリ}
// ステージング コミット プッシュ
git add .
git commit -m 'first commit'
git push -u origin main
■ GitHubの表示
親リポジトリにサブモジュールの追加が完了した場合の表示
フォルダアイコンに「→」が表示される(コミットが紐づいている)
■ vsCodeの表示
親リポジトリにサブモジュールの追加が完了した場合の表示
色が青色になるみたい
Discussion