WIP PR ワークフローを実践する

WIP PR ワークフローとは

通常の開発では future ブランチを切り, commit を重ねていき, 最後に push し PR (pull request) する流れがある. しかしこれだと他の開発者に作業の状態がわかりにくい.

WIP PR では PR に WIP (work in progress, 作業途中の状態) であることを明示し, [WIP] ${PR 名} で PR を出しておく. その後は定期的に push しておき, PR ページを見れば作業状態が一目で分かるようにする.

利点

  • 他の開発者の作業状態が確認しやすい
  • 大きい実装のとき, 実装中にレビューリクエストなどできる

実際の方法

しかし, GitHub では commit がない状態で PR を送ることはできない. commit を一度しないと PR できないというのは WIP PR ワークフローを実践する上で支障となる. そこで, この問題を解決するのが 空の commit である.

git checkout -b ${ブランチ名}

いつものようにブランチを切ったら, 以下のように空の commit を行う.

git commit --allow-empty -m "Create PR"
git push origin ${ブランチ名}

これですぐに PR が行える状態となった. hub を入れている場合以下で一気に PR まで出来る.

git pull-request -m "[WIP] ${PR 名}" -b ${送り先のブランチ}

git checkout -b sample-pr
git commit --allow-empty -m "Create PR"
git push origin sample-pr
git pull-request -m "[WIP] Create Sample PR" -b master

WIP PR について識者コメント

終わってから pull request ではなく、work in progress (途中の状態) で pull request を飛ばしてしまって、それによってそのタスク に commit が重なっていく様子を可視化する。全員がこのスタイルでの開発をさせて途中経過を見える化する

https://twitter.com/naoya_ito/status/446844387465502720

References