git merge と git rebase の引数の順番
どちらもよく使うコマンドですが、引数の順番をよく忘れます。
二つの方法で、developブランチの変更をmasterに取り込むことを考えてみます。
git merge
こちらはわかりやすいですね。
git checkout master git merge develop
git rebase
rebaseする場合はというと、
git checkout develop git rebase master
ちょうどmasterとdevelopが逆ですね。(だから分からなく...)
checkoutせずに、rebaseする方のブランチ(ここではdevelop)を指定するには、
git rebase master develop
です。
これだけだとmasterはまだ変わっていないので、mergeする場合と全く同じコマンドを続けて打って fast-forward merge を行います。これで、変更をmasterに取り込めました。
その他
mergeに2つめの引数を渡しても、merge先は変わりません。この場合、 octopus merge といって、複数ブランチをまとめてmergeするそうです。(初めて知りました。)
最後に
これぐらいは、調べずに覚えて打てるようになりたいですね。
本当は --help
オプションで使い方が見られるのですが、windows だとテキストエディタが立ち上がるせいで、あまり使えていません ... 。
それと、rebaseは用量用法を守って使いましょう!