👻

[git応用]cherry-pics🍒・インタラクティブrebase

2024/11/08に公開
どんな時につかう?[自分用]

アジャイル開発を行っていて例えばリリースが8月のものと12月のものがあって、branchをそれぞれで切って開発を進めてます~って時に、急に12月の範囲のものを8月にぶちこみます🙃ってなったときにさくらんぼを摘むみたいに12月のところからコミットをとってきて、8月のブランチにぶちこみます~~~みたいなときに使う

git checkout main (移動してない場合は)
git cherry-pick c2 c4
// copyしたいブランチを空白開けて一気に指定してコピーできる。

インタラクティブrebase

インタラクティブrebaseとは単にrebaseコマンドに-iオプションを合わせて使うこと🥺
このオプションがつくとrebase概要を一目で見れる。

git rebase -i HEAD~4

って押すとrebaseウィンドウが出現!
omitpickが出てきて、pick押した奴は省かれてomitのやつだけコピーが作成される。
あとはrebaseなのでHEADもコピー側にかわった!

補足

HEAD~〇がよくわかんない。
〇にはもちろん数字が入る。その数字は今HEADがある場所から何個上に行くかの数字を書く。

これの場合は、今c5(コミット5)にHEAD(*)がある。
もしOver Hereの場所からコピーを作成したいなぁっておもうなら、コミット2~5を選択したい!
その場合はコミット5を含んで4つ上がコミット2だからHEAD~4とかく!!!

git rebase -i HEAD~4
// -iオプションをつけたのでウィンドウが開いて、今回はc3~c5をコピーしたいからc2だけpickする。
// ついでにコピーの順番も変えたいのでウィンドウ上で順番もかえた。

結果は~~~~

大苦戦🥺🥺🥺💦

Discussion