commit comment
git addしてstaging areaに追加した後、commitする。
自分のメンターに進められたサンプルは、Angular.jsの開発者ガイドに書いてあるメッセージ。
英語
- feat: A new feature
- fix: A bug fix
- docs: Documentation only changes
- style: Changes that do not affect the meaning of the code (white-space, formatting, missing semi-colons, etc)
- refactor: A code change that neither fixes a bug nor adds a feature
- perf: A code change that improves performance
- test: Adding missing or correcting existing tests
- chore: Changes to the build process or auxiliary tools and libraries such as documentation generation
日本語
- feat:新機能
- fix:バグ修正
- docs:ドキュメントのみの変更
- style:コードの意味に影響を与えない変更(空白、書式設定、セミコロンの欠落など)
- refactor:バグを修正も機能も追加しないコード変更
- perf:パフォーマンスを向上させるコード変更
- test:欠けているテストや既存のテストを修正する
- chore:ドキュメンテーション生成のようなビルドプロセスや補助的なツールやライブラリへの変更
ただこれって結構すでにできているプロジェクトに対するものである感じがある。なんかいろいろ足りないなあってきがしたんだけど忘れた。また作りながら追記しよう。
プレフィックスをつけるってこと
要はこれってまずはプレフィックスをつけるってこと。もう少し踏み込んでフォーマット自体を決めてしまおう。
prefix 何した 何に なぜ
こんな感じが自然か。あとは文字数は基本的に50文字以上、100文字以下くらいを。
rebase
なんかcommit messageとセットで見かける。どうもcommitを修正できるものらしい。まずはgitのdocumentを見る。
Git には、あるブランチの変更を別のブランチに統合するための方法が大きく分けて二つあります。merge と rebase です。
- 普通のmerge
- rebase
イメージはできるが、よくわからない。mergeと関係が深いらしいが、なんでcommitの文脈ででてくるのか。
どうやら、これが本来の使い方だけど、複数のcommitを一つにまとめるっていう意図で使われるらしい。どうも怪しいが。
git rebase -i [commit ID]
とすると、pick = 元とsquash = 統合対象がでてきて、まとめられるみたい。この傾向からして、ログが残らないからローカル限定っぽいな。
使い方のイメージとしては、source treeかなにかでcommitログの正しさを確認して、まとめるべき単位を考える感じか。 cherry pickも見たほうがよさそうだ。