[Git/Github]複数のRepositoryをマージする場合は?


NestJSを勉強しているうちに、別のリポジトリで作成したアイテムを一つのリポジトリのフォルダに分けて整理したいと思います.
  • Springは最初からフォルダを配布して勉強し、整理しやすいようにしています.👍
  • nestJSもこのようにフォルダごとに整理しましょう
  • 整理したいファイル



    ここで学習ディレクトリに従ってサブフォルダを整理したいです.
  • を理解するためにparent repositoryと呼びましょう.
  • の通信録をnest-social-loginというサブフォルダに移動したいです.
  • を理解するためにchild repositoryと呼びましょう.
  • Git - subtree


    リモート登録child repository。

    $ git remote add <child의 remote 이름> <child 레포지토리 주소>
  • 2$ git remote -vによりリモートで確認できます.
  • child reote toryをparent repositoryのサブフォルダに移動します。

    $ git subtree add --prefix=<parent 레포지토리에 저장할 폴더명> <child의 remote 이름> <parent 레포지토리 branch name>
    $ git push

    念願どおりに整理した。


  • gitログも一緒に転送されたことを確認できます.
  • Git - Submodule


    child repositoryをサブモジュールプロジェクトとして使用します。

    $ git submodule add <child 레포지토리 주소> <parent 레포지토리에 저장할 폴더명(생략하면 child 레토지토리 이름으로 자동 설정)>
  • このとき.gitmodulesファイルを開くと、次のようにサブモジュールに関する情報(名前、パス、リモート・リポジトリurl)が表示されます.
  • [submodule "nest-social-login"]
    	path = nest-social-login
    	url = https://github.com/hocaron/Social-Login.git

    念願どおりに整理した。



    最新の更新
  • サブモジュールプロジェクトでは、サブモジュールディレクトリの下でgit fetchコマンドを実行し、git mergeコマンドを使用してUpstreamブランチをマージする必要があります.
  • プライマリ・プロジェクトに戻り、git diff --submoduleコマンドを実行すると、更新されたサブモジュールと各サブモジュールに追加されたコミットが表示されます.毎回--サブモジュールオプションを使用したくない場合は、diff.サブモジュールの値をlogに設定できます.