Git flow - amekh/pond GitHub Wiki

Gitを運用するためのフローを記載します。

Table of Contents

Git flow

1. branch

  • master ・・・ リリース状態と同期
  • develop ・・・ 開発用のマスタブランチ、常にデプロイできる状態にする
  • task-branch ・・・ Redmine、issuesのチケット毎に1ブランチ切る

2. フロー

  1. redmine、issuesでチケット発行
  2. developからチケットに紐づくtask-branchを切る
  3. 実装。なるべく細かい単位でコミットを行う
  4. 単体テスト
  5. developに対して pull request を作る
  6. slack、chatworkでレビュー依頼
  7. "+1 :+1: "コメントが付けばdevelopにマージ

3. commit

3.1 コミット

リモートとの差分を確認して、無駄な差分を出さないようにしましょう。

3.2 コメント

コミットコメントは以下の構成として下さい。

1行目にコミットタイトル
2行目は空白  
3行目にコミットの詳細  

コミットタイトルは端的に分かりやすく記載しましょう。
また、以下のルールで記載することとします。

#チケット番号 [タグ] コミットタイトル

コミットタグ

  • fix:バグ修正
  • add:新規(ファイル)機能追加
  • modify:機能修正(バグではない)
  • remove:削除(ファイル)

例:

#192 [fix] ユーザ名で不正な文字列が利用できてしまう

ユーザ名で、 "@*&!~><?/';{}\'" などの許容していない文字を
入力されてもエラーにならず、登録されてしまうバグを修正しました。

原因
---
バリデーション漏れ

対応
---
バリデーション処理を行い、不正な文字を
入力されている場合はエラーを返すようにしました。

3.3 粒度

コミットはできるだけ細かい単位で行うのが良いとされています。
1コミットで色々やってしまうと、レビュワーに意図が伝わりにくいです。

特に、bugfixの場合は複数件のバグを1つのコミットに纏めないように気を付けてください。
バグがどの修正で解決したのかわからなくなってしまいます。

4. レビュー

不具合、改善点、提案などあれば、遠慮なく指摘して下さい。

レビューされる側の立場に立って、コメントは気を使って書きましょう。
その方が、相手に意図が伝わりやすいです。絵文字などを上手く使うと効果的。 :sushi:

5. タグ

リリースする際は必ずタグを切りましょう。
切り戻しがスムーズに行えます。