Closed4
Git submoduleを試す
追加する。
git submodule add <サブモジュールのリポジトリのURL>
特定ディレクトリとして。
git submodule add <サブモジュールのリポジトリのURL> libs/mymodule
このサブモジュールの追加を変更としてコミットする。
git add libs/mymodule
git commit -m "Add mymodule as submodule"
サブモジュールごと復元する。--recursive
を指定。
git clone --recursive <メインリポジトリのURL>
既存の作業コピー内で追加されたサブモジュールを取得する。
git submodule init
git submodule update
サブモジュールは、サブモジュールとして追加・更新した時点のコミットに紐つく。
サブモジュールのリポジトリが変更された場合は--remote
を指定して、明示的に追従する。
git submodule update --remote
git add libs/mymodule
git commit -m "Update mymodule"
サブモジュールディレクトリの中は、サブモジュールのリポジトリの作業コピーになっている。
復元した場合、サブモジュールディレクトリ内はどのブランチにも紐づいておらず、特定コミットに直接依存している。
$ git branch
* (HEAD detached at xxx)
この不思議空間内でも、コミット履歴を伸ばすことができる。コミットすると少し名前が変わる。
$ git branch
* (HEAD detached from xxx)
pushするにはリモートブランチを明示する必要がある。もしくは、手元でswitchしてブランチを明確化してからpushする。
git push origin HEAD:<branch>
このスクラップは4ヶ月前にクローズされました