As rookie

ルーキーインフラエンジニアがインフラのこと以外も結構書いてしまうブログ

git rebaseメモ

こんにちは

引き続きlearn Git Branchingでgit のbranchの操作を学んでいます。

前回

mokicks.hatenablog.com

またつまずきました。その時のメモです。

Rebaseをモノにする の1でつまずきました。

複数に別れたブランチを一つのシーケンシャルにまとめるという問題です。 ちなみにシーケンシャルとは

e-words.jp

f:id:shigeru-mokicks:20161004024111p:plain

これを

f:id:shigeru-mokicks:20161004024155p:plain

をこうしたいのですが

やはり回数をオーバーしてしまいます。。

git checkout bugFix
git rebase master
git checkout side
git rebase bugFix
git checkout another
git rebase side
git checkout master
git rebase another

8回ですが、模範回答では7回でした!

いやいや無理でしょ!

自分の中では最小でやってきたつもりだ。

こんなところで時間使っていてもしかたない、答え見ちゃえ

git checkout bugFix
git rebase master
git checkout side
git rebase bugFix
git checkout another
git rebase side
git rebase another master

おいおい git rebase anoter master とかありかよ

んじゃ

git rebase master bugFix
git rebase bugFix side
git rebase side another
git rebase another maseter

でいけるんじゃね?

いけました。

わかったことまとめ。

◻︎rebase したいブランチにcheckoutしている状態のrebaseは

git rebase <リベースのされる(宛先)ブランチ>

◻︎checkout しないでのrebaseは

git rebase <リベースのされる(宛先)ブランチ> <リベースする(元)ブランチ>
git rebase <何のブランチに> <何のブランチを> ぶらさげるか

別のブランチのコミットはリベースされるブランチにぶらさがり、一つのシーケンシャルの以前のコミットにいてるブランチは、最新のコミットのところまで移動する。

こんな感じですね!

わーい!