🌲
【Git】綺麗なcommitを作りたい
git初心者でpush pull以外の操作が?って感じだったけど以下を知って幅が広がったのでメモ
後から見て何をしたかわかるcommitメッセージを
もちろん属するチームによって何が良いかは変わるが一例を記す
- prefixをつける
prefix | 意味 |
---|---|
feat | 新しい機能の追加 |
fix | 既存のものの修正 |
- issue番号を含める
github等で元となったissueを探しやすい
例
以下だと後から見た時に120番のissueに基づいてGET /usersを新しく実装したんだと分かる
feat: #120: GET /usersの実装
commitをまとめる (--fixup)
さて上のようにコミットを分けていると途中で
「前にしたコミットにこれも追加しないと!」
ってなった時使います.
- まず今どこにいるかの確認
HEADがついているcommitが今自分がいるところ
f17f1fdとかの列がcommitハッシュって言ってcommitの識別子的なやつ
> git log --oneline
f17f1fe (HEAD -> #branch名) 3つ目のcommitメッセージ
37ce112 2つ目のcommitメッセージ
3c3f324 1つ目のcommitメッセージ
- fixupコミットを作る
--fixupの後にまとめたい先のcommitハッシュを書く
もし2つ目のcommitにまとめたいなら
> git commit --fixup 37ce112
するとfixupがついたコミットが作成される
> git log --oneline
25f2b23 (HEAD -> #branch名) fixup! 2つ目のcommitメッセージ
f17f1fe 3つ目のcommitメッセージ
37ce112 2つ目のcommitメッセージ
3c3f324 1つ目のcommitメッセージ
- リベースする
今回2つ目のコミットにまとめたかったのでHEADから数えて3つまでを選択(HEAD~3のとこ)
> git rebase --autosquash -i HEAD~3
するとvimのエディタが開くので
~~
fixup 2つ目のcommit
~~
となっているのを確認して:qで閉じる(vimの操作は適宜調べてください)
- 確認
> git log --oneline
29ca3d5 3つ目のcommitメッセージ
88cd21e 2つ目のcommitメッセージ
3c3f324 1つ目のcommitメッセージ
commitメッセージを修正する
下の記事がわかりやすいので書くことないです
結論
こまめにgit log --onelineでログを見るようにすると理解が深まった
いいコミットはチームによって違うのでその場その場に合わせるように
Discussion