Git いろいろ

Git submodule

サブモジュールを追加すると、.gitmodules ファイルが生成されそこにモジュール情報が追加される

//.gitmodules
[submodule "bootstrap"]
  path = bootstrap
  url = https://github.com/twbs/bootstrap.git

コマンド

//サブモジュールを追加する(submodulesディレクトリ を指定)
git submodule add https://github.com/twbs/bootstrap.git submodules/bootstrap

//サブモジュールが参照するコミットIDを出力
git submodule

//パッケージを再現する(cloneが実行される)
git submodule update -i

サブモジュール削除

//参照を削除する(.gitmodulesからは消えないしファイルもある)
git submodule deinit -f submodules/bootstrap

//.gitmodulesから削除、cloneしたファイルも消える
git rm submodules/bootstrap

//次にgitディレクトリ から手動削除する(これをする必要があるのか不明)
rm -rf .git/modules/追加したサブモジュール

プロジェクトから見る利用するサブモジュールの更新手順

submodule vue-form を最新の master にしたい

1、checkout した submodule ディレクトリ にて git pull する

2、するとプロジェクトの git には差分が発生する

modified:   submodules/vue-form (new commits)

3、差分を add して commit すればよい

プロジェクトのリビジョンを変更したときに submodules がそのときのバージョンではない可能性あり
勝手に追随して submodule も変わってくれるわけではないため

そのときは git submodule update を実行すればそのバージョンになる