⛓️
Git で submodule を使ってマイクロサービスを開発している時に時々使うコマンドのオレオレ忘備録
submodule 丸ごと clone
git clone --recursive git://example.com
いつ使う?
プロジェクトを初めて clone した時。
何が便利?
おそらく以下のコマンドをよく使うと思うが、これを1回で済ませることができる。
逆に言えば上記コマンドで --recursive
をつけ忘れた時は、下記2つ目のコマンドを叩けば良い。
git clone git://example.com
git submodule update --init --recursive
submodule を全部最新化
git submodule update --init --recursive
いつ使う?
前述したやつ。
チーム等で開発してて、誰かが submodule を追加や更新した時に使う。
何が便利?
submodule の初期化(git submodule init
)もしてくれるし、submodule の submodule とかも適切な状態にしてくれる。
submodule のブランチをすべてマスターに切り替えてコミットを最新にする
git submodule foreach git checkout master && git submodule foreach git pull origin master
いつ使う?
- submodule 個々の最新をチェックしたい時。
- submodule の開発をする時。
- master からブランチを生やして作業したい時。
などなど。
注意
全ての submodule で master 最新にしたときに、サービスが正常動作するとは限らない。
(だから親の git で submodule コミット番号を管理しているわけだが)
Discussion