WIP PR(Work In Progress Pull Request)の運用フロー(作業見える化)をメモ

コードレビューを最適化できるWIP PRについてメモしておく

WIPとは

WIPは作業途中(Work In Progress)という意味がある。通例としてgit上でwipといれたcommitを見かけた場合は、まだ作業途中という目印として使われる。一般的にcommit履歴が汚れるを嫌がり、ローカルではwipは合ってもサーバにはwipは上がらないようにする場合が多い。
※pull requestでwipがcommitメッセージについているのは基本ありえない。作業途中なcommitはpull requestしない。

WIP PR運用フロー

通常pull requestをすることがないwip状態のcommitをpull requestする考え方の運用フロー。
開発のフローとしてチーム全員の作業状況が分かり且つレビューワーは暇しない作業フローになる。
レビューワーは仕上がったpull requestを待つ事なく作業途中の過程を見る事ができるため戻り発生を減らす事に有効

これから作業をする場合に、事前にpull requestを作成して送る場合、gitは基本変更が合った場合にcommitを行うため、何も変更がない場合、commitもpull requestも行わない。
「変更がない」状態の空のcommitを作る事がgitではできるようになっているので、これから作業しようとしている内容をcommitメッセージに含めてcommit / pull requestを行うことで、wipのprフローを開始できる。

WIP PR運用フロー手順1(空のbranchを作成し作成したbranchへ移動する)

次の作業が分かりやすいブランチ名にしておく

git checkout -b feature/fizzbuzz 

※masterのコピーとしておく

WIP PR運用フロー手順2(空のコミットを作成する)

commitメッセージはcommitの中身が分かる内容で。

git commit --allow-empty -m "fizzbuzz feature"

WIP PR運用フロー手順3(空のcommitをpushする)

git push origin feature/fizzbuzz:feature/fizzbuzz

WIP PR運用フロー手順4(pull requestする)

commitメッセージには通例[WIP]を入れておく

git pull-request -m "[WIP] fizzbuzz feature" -b upstream:master -h origin:feature/fizzbuzz

※hubコマンドが入っていない場合はgithubのブラウザ上からpull request
hubコマンドを使ってpull requestのコマンド
http://to-developer.com/blog/?p=1372

ここまでで空のwipをpull requestはOK

WIP PR運用フロー手順5(新規commitを更新する)

一旦作業が進んだら細かくコミットしてpushしておく

touch fizzbuzz.rb
git add fizzbuzz.rb
git commit --amend
git push origin feature/fizzbuzz:feature/fizzbuzz

※commitオプションの–amendで以前のcommitを更新するとcommit履歴が汚くならない

これの繰り返しを行うことでレビューがシンプルに!

・・・・wip ・・・to be continued

その他おすすめの備忘録

Tagged with:
 

コメントを残す