Noesworthy

git rebase --onto

とんでもないモンスター複合バグが見つかったけど全然原因がわからなぃよ...

200コミットくらい戻ったらバグが全くなくなるけど、たぶんその後にいくつかのコミットが積み重なって複合バグになったと思われる...

200個分コミット巻き戻して確認していきたいけど、さすがに200個一個ずつ確認していくのはめんどくさいな...

そんなとき!使えるのがgit rebase --onto [hash1]^ [hash2]だよぃ

使い方

まずコミットを199個分戻りますぃ

git reset --hard [hash0]

この時点でfeatureブランチ切るとよぃ

git switch -c 俺のfeature

その時点でなんかバグ修正できたらコミット

git commit -m "俺のバグ修正"

そのあと、hash0の次のコミット(hash1)から、その先どこまで行きたいか(hash2)まで確認して、

git rebase --onto [hash1] [hash2]

これで俺のfeatureブランチには

メインブランチのhash2までのコミット + 俺のバグ修正

がコミットされた状態になる!

それでどんどんコミット積んでいけばいつの間にか現代に戻れるってわけ

#blog #tech