経緯
開発をしているときに別ブランチでlintやtsc,jestのテストを作成していましたが現在のブランチではそれが作成されていなかったためその別ブランチを使用して現在ブランチで開発している内容にもテストを通すようにします。
git rebaseを使おう
git rebaseとは
簡単にいうとブランチの流れを簡潔にして見やすくする
分岐したブランチの上に現在のブランチを乗っけるようなイメージです。
こちらがとても参考になりました。
https://git-scm.com/book/ja/v2/Git-%E3%81%AE%E3%83%96%E3%83%A9%E3%83%B3%E3%83%81%E6%A9%9F%E8%83%BD-%E3%83%AA%E3%83%99%E3%83%BC%E3%82%B9
実際の流れ
現状はmainブランチから切った現在のブランチと、テストを作成しているブランチがある状況でまだテストを作成しているブランチはmainにはマージしていない状況。
仮名で現在のブランチ名をfeature/task
ブランチとし、テストのブランチをfeature/test
ブランチとします。
とりあえず現在のブランチに移ります。
git checkout feature/task
そして現在ローカルにはテストのブランチがfetchされていないのでローカルに移します。
git fetch origin feature/test
そして現在ローカルにfeature/testブランチが作成されていないので作成します。
git checkout -b feature/test origin/feature/test
そしてrebaseしてfeature/taskブランチをfeature/testブランチの上に乗せて参照できるようにします。
git checkout feature/task
git rebase feature/test
これでテストを参照して開発することができるようになったので変更を加えたら強制的にpushしてPRの際に向き先をfeature/testに変更するようにします。
git push -f origin feature/task
PRの向き先はこの場合,feature/test
に変更します。
忘れやすいですがこれから多用することになると思うので記事にしました。