26
@kwgch

Gitで複数のリポジトリをまとめる

この記事は最終更新日から5年以上が経過しています。

やりたいこと

各々gitで管理していた配下のフォルダをまとめて、GitHubで1つのリポジトリとして見たい。

※以下、ご自分のユーザー名、リポジトリで読み替えて下さい

フォルダ構成
git-tutorial-3
├tutorial1
├tutorial2
:
└tutorial7

GitHubへPUSH

各サブフォルダそれぞれ個別にgitで管理している。
親フォルダでGitHubへPUSHする。

$ cd git-tutorial-3
$ git init
$ git add .
$ git commit -m "Initial commit"
$ git remote add origin https://github.com/kwgch/git-tutorial-3.git
$ git push -u origin master

するとサブフォルダ(tutorial1~7)のフォルダ名は表示されるが、中身は見えない。

サブツリーマージ

そこで下記コマンドをtutorial1~7に対して実行する。

$ git remote add tutorial1 ./tutorial1
$ git fetch tutorial1
$ git read-tree --prefix=tutorial1/ tutorial1/master

COMMIT、PUSHする。

$ git add .
$ git commit -m "Merge subtree"
$ git push

Githubで各サブフォルダの中身が確認できるようになる。
ただ、各サブフォルダの以前の履歴を見ることはできない(ローカルでは可能)。

サブフォルダでの作業

$ cd tutorial5
$ vim sample.txt
$ cd ..
$ git add .
$ git commit -m "Change tutorial5"
$ git push

サブフォルダのファイルを変更して親フォルダでPUSHすると、GitHub上で変更が確認できる。

参考

こちらのサンプルを利用させて頂きました。
サルでもわかるGit入門 〜バージョン管理を使いこなそう〜

参考にしました。
サブツリーマージ

26
ユーザー登録して、Qiitaをもっと便利に使ってみませんか。
  1. あなたにマッチした記事をお届けします
    ユーザーやタグをフォローすることで、あなたが興味を持つ技術分野の情報をまとめてキャッチアップできます
  2. 便利な情報をあとで効率的に読み返せます
    気に入った記事を「ストック」することで、あとからすぐに検索できます
kwgch
黄色いアイコンの人です

コメント

この記事にコメントはありません。
あなたもコメントしてみませんか :)
ユーザー登録
すでにアカウントを持っている方はログイン
記事投稿イベント開催中
Java開発者のためのAzure入門
~
フロントエンド強化月間 - 開発する上で知っておくべき知見を共有しよう
~