2020-05-24
hubコマンドでPRをいい感じにまとめる
近頃dependabotなどを利用してパッケージのバージョンアップを自動化しているチームも多いと思いますが
PRがパッケージ毎に立つため、1つ1つマージするとCIのクレジットを大量に消費してしまうので
節約の為にもまとめてマージしたいところです
しかも、ブランチを切って git merge --no-ff origin/XXX
のようにマージしたPRを立てても
元のPRは自分で閉じる必要があるので非常に面倒臭い
そこでGitHubが提供しているコマンドラインツールの hub
を使うことで
いい感じにまとめて、いい感じに旧PRをクローズすることができるようになります
入れて使う
brew install hub
で入れる
hub merge https://github.com/XXXX/XXXX/pull/1234
でPRをマージしていく
まとめたPRをマージすると、取り込んだPRも全て閉じられる
便利!
yarn.lockにコンフリクトが発生したときは
普通にyarnに解決させる
コンフリクトすると以下のようなメッセージが出る
hub merge https://github.com/XXX/XXX/pull/1234
From github.com:XXX/XXX
* branch refs/pull/1234/head -> FETCH_HEAD
Auto-merging yarn.lock
CONFLICT (content): Merge conflict in yarn.lock
Automatic merge failed; fix conflicts and then commit the result.
このとき自分で yarn.lock
を触らずに yarn
を実行する
(yarn.lock
にあるコンフリメッセージも触らずにそのまま)
すると info Merge conflict detected in yarn.lock and successfully merged.
のようなメッセージが表示され、勝手にコンフリクトが解消される
まとめると
- hub merge 〜 の実行
- (コンフリクトする)
- yarn の実行
- git add . の実行
- git commit の実行
- pushして完了
賢い〜