今月のノルマを読みながら自分用の一貫した使い方を求めて考えたり、読んだり、探したりしてました。

読んだ本はこちら。

両本とも結構細かい部分に着目してコマンドの解説をしていたのが特徴的だったので、どっちか一冊とりあえず持っておけばいい印象を持ちました。本の性質としてはどちらも同じですが、より詳細に書いているのは Git によるバージョン管理の方かなという感じです。

どちらもストーリー仕立て。

ブランチ戦略

基本的なブランチ戦略は GitHub が使用している github-flow を利用するのが良さそうという事です。

このへんで解説されてます。

github-flow は git-flow のフローをもっとシンプルにし、なるべくルールに対しダレないようになっています。おそらくブランチ戦略でガチガチに固める運用では無く、プルリクエスト駆動によってコードの浄化を狙ってるんでしょう。

これは本当にシンプルなんでめんどくさくなくて良いですね。

コミット感覚^h^h間隔

git を使っていて割と困るのが、コミットする間隔 (粒度) とかです。少なくとも僕は割と悩みます。一発で上手くやる事を考えがちな人間なので、余計に悩むんですが、上記二冊を読んでいると、やっぱりそんな事を気にしなくて良い事が書かれてますね。

基本的にコミットは説明的なメッセージにする必要がありますが、rebase の存在を考えると、多少の変更でもガンガンコミットして、

"Update filename"

とかでも良い気はします。実際にプルリク入れるターンに持って行ってから rebase で履歴編集するくらいで良さそう。

プルリクに関しての扱いとかはこのスライドとかが良かったです。

コミットメッセージ (テンプレート)

僕はコミットメッセージとかも結構悩んだりするんで適当に調べてみました。

調査対象は github/hubot-scripts です。

$ git log --oneline | cut -f2 -d' ' | sort | uniq -c | sort -r

でコミットメッセージの頭を集計してみました。

実行結果は gist みて下さい。

割りかし良く使用しているものはありがちなメッセージでした。
やっぱりこの辺は良く使われていますね。

  • Add
  • Remove
  • Fix
  • Update

Merge も良く使われていたんですが、それは git のメッセージだったりプルリクエストだったりで割とどうでもいい感じのメッセージです。4 つのメッセージもこれといった厳格な用途があるわけでもなく頭の単語に意味があっていれば行の追加だろうが機能の追加だろうがポンポンやってる感じです。

github のリポジトリもみながら様子を伺っていると master->{Fix|Add|Update|Remove} branch 作成みたいな流れでした。一行変更するにも master から branch を作成する流れができているのが見られました。

まとめ

github の管理手法を探る方向にもっていって正解だったかな、と感じます。シンプルな運用の為連想しやすかったですね。メッセージに関しても github-flow の流れを組み込んでいるように感じます。

ようやく自分用にまとめておきたかった話を書けて良かった。