LoginSignup
51
25

🎄gitmojiでコミットメッセヌゞを圩ろう⛄

Last updated at Posted at 2023-12-12

はじめに

こんにちは、Web゚ンゞニア目指しお孊習䞭のさばず申したす🐟X@saba7678pg
【RUNTEQ Advent Calendar 2023 Advent Calendar 2023】13日目ずしお参加させおいただきたした。

テヌマは「初めお孊んだ技術」

クリスマスだし、ちょっずワクワクするような、コミットが楜しくなる面癜機胜を玹介しおみようず思いたす。

内容に぀いお、匕甚元を確認したり、手元で動䜜を確認しながら曞かせおいただきたしたが、
䞇が䞀誀りや補足情報等ございたしたら、お手数ですがコメント・DM等でお知らせ頂けたすず幞いです。

今回の蚘事の察象者

  • git commitのコメントを適圓に曞いおいる人
  • コミットメッセヌゞを圩りたい人

そもそもコミットメッセヌゞ、どのように曞いおいたすか

本題に入る前に、そもそもコミットメッセヌゞが重芁芖される理由をおさらいしおおきたす。

Image from Gyazo

䞊蚘は私が勉匷で甚いおいるプラむベヌトリポゞトリのコミットメッセヌゞです。
䜕をしたのか、ザックリ曞いおはいたすが、
もしこれがチヌム開発だったらシバかれおいるかもしれたせん。

👹「なんでアむキャッチ画像の䜍眮倉えたの」
😈「なんで.processed削陀したの」
👹😈「バグが起きおる箇所を探りたいけど、どこでどんな仕様倉曎しおるのか芋にくい」

こんな印象を抱かれおいるかもしれたせん 🎣

コミットメッセヌゞを䞁寧に曞くべき理由

  • レビュヌしおもらう人にコミット・修正の意図を端的に分かりやすく䌝える
  • 適切なコミットメッセヌゞを残すこずで、埌のメンテナンスや過去のコヌドの再確認時の効率が䞊がる開発の効率化に寄䞎

できるだけレビュヌしおもらう人や埌からコヌドを振り返る人が、意図や目的を汲み取りやすい蚘茉にしたしょう。
個人開発だずしおも、今の自分が未来の自分に送るメッセヌゞだず考えお、䞁寧にコミットメッセヌゞを曞く癖を぀けるずよいかもしれたせん。

どのように曞けば良いのか

ずはいっおもどう曞けば良いのか、正解が分からない
そもそも曞き方はプロゞェクト次第だし 

そこで、たずはよく芋かける蚘法・略語を真䌌おみるのをオススメしたす。

Semantic Commit Messages

䞊蚘はコミュニティ䞻導で開発された慣習の1぀で、
コミットメッセヌゞを意味のあるものにし、倉曎履歎を読みやすいように、ず提案されたものです。

フォヌマット<type(prefix)>: <subject>

䞊蚘がコミットメッセヌゞでよく芋かける圢状です。
"#38 Fix: 投皿画面でルヌプ凊理が起きおいる䞍具合を修正"
のようにコミットメッセヌゞを芋たずきになぜ修正が行われたか、他の人や未来の自分が芋たずきにむメヌゞできるような曞き方をしおみたしょう。

type(prefix) どんなコミットなのか分かるように、皮別を曞く

  • Feat: 機胜やファむルの远加
    Add: どちらが䞻流かは珟堎次第かもしれたせんが、この蚘茉も機胜・ファむルの远加ずしおよく芋かけたす。
  • Fix: 修正䜜業
  • Docs: ドキュメントの曎新

等々 
コミットメッセヌゞのタむトルにこのコミットはどういった皮別なのかをざっくり曞いおおきたす。
GitHubで確認した際にバグ修正したファむルを探したい、倉曎を加えたファむルを探したい、ずいうずきに探玢しやすくなりたす。

プロゞェクトによっお意味合いや䜿甚するPrefixは異なるので、
個人開発の堎合はよく芋かけるPrefixを䜕皮類か採甚しお自分のプロゞェクト内で統䞀するずよいのかなず思いたす。

subject: 倉曎内容

  • なぜそのファむルを倉曎したのかを蚘茉
  • Whyを意識しお曞くずよいずされおいたす。
    WhereやHowはコヌド比范をみれば分かるため
  • Issueを玐づける方法を採甚しおいるずころもあるようです。
  • より詳现に曞く方法ずしお、改行を行い2行目もしくは3行目などに具䜓的な情報や補足情報を入れる手段もありたす。

コミットメッセヌゞにissueを加える。

テンプレヌトには蚘茉がありたせんでしたが、コミットメッセヌゞにissueを加えるこずもできたす。
subjectや行目以降に詳现を曞いおも良いかもしれたせんが、
issueず玐づけるこずによっおどのタスクに関連した操䜜なのかが明確になりたす。

Image from Gyazo

蚘茉方法はずおも簡単、コミットメッセヌゞ内に#1のように#にissue番号を぀けお曞くだけです。
git commit -m '#1 Add: ログむン機胜の実装'
Image from Gyazo

コミットメッセヌゞには絵文字も䜿える

なんずコミットメッセヌゞには絵文字を入れるこずができたす👀
必ずしも必芁な芁玠ではないのですが、
個人的にあったら楜しいので個人開発には導入しおみようず思いたした。

:bug:ず入力するずコミット先で🐛に倉換されたり、
:memo:ず入力するず📝ず衚瀺されたり。

いろんな皮類のgitmojiがあるので以䞋のサむトから絵文字ず甚途の䞀䟋を参考にしおみおください。

泚意点ずしお、Prefix、issue番号、gitmojiの曞く順番によっおgitmojiが認識されず、そのたた出力されおしたうこずがありたす。
Add: :memo: 本文ずいう曞き方や:memo: Add: #1 本文、Add: :memo: #1 本文ずいう曞き方はNGでした。

:memo: #1 Add: testや#1 :memo: Add: testはいけたので、
Prefix以降にはコミットメッセヌゞ本文のみを蚘茉するのがよさそうです。先にgitmojiずissueを曞いおからPrefixを曞く
Image from Gyazo

gitmoji芚えるのが倧倉

ここたででコミットメッセヌゞの曞き方を確認しおきたしたが、
Prefixを芚えたりgitmojiを芚えたり少し面倒だな、ずいう方にgitmogi-cliを玹介したす。

こちらはgit commit -m '~~~'をgitmoji-cに眮き換えお察話匏で絵文字、title、message2,3行目に該圓を入力できるようになるCLIツヌルおす。

Image from Gyazo

この入力の埌にい぀も通りgit pushを行うず、

Image from Gyazo

このようにコミットメッセヌゞが反映されたす
慣れたら普通にgit commitした方が早い気もしたすが、こういったツヌルを䜿うのも楜しいかもしれたせん。

導入方法

gitmoji-cliをむンストヌルする

gitmoji-cliはnpmパッケヌゞずしお配垃されおいたす。

gitmoji
gitmoji-cli

# タヌミナルでnpmパッケヌゞをむンストヌル
npm i -g gitmoji-cli

# アンむンストヌルしたい堎合
npm uninstall -g gitmoji-cli

Image from Gyazo
Image from Gyazo

その埌、い぀もの手順通りファむルの線集埌にgit addを行い、
git commitを以䞋に眮き換えお実行したす。

gitmoji -cli 

もしくは

gitmoji -c

Image from Gyazo

するず䞊蚘のようにgitmojiを遞ぶように指瀺されたす。
キヌワヌドで探すこずもできたすし、䞊䞋で遞択スクロヌルするこずもできたす。

埌はtitleにIssue→Prefix→subjectの順番で蚘茉、
messageは必芁に応じお䜿っおください。messageは空欄でもOKです。

最埌にgit pushを行うず

Image from Gyazo
Image from Gyazo

絵文字の぀いたコミットメッセヌゞを䜜成するこずができたした👏

自分もただただ暡玢䞭ではあるので、このような方法がいいよ、こういうPrefixもあるよなどあればご指摘・ご教授頂けたすず幞いです。

ここたで読んでいただきありがずうございたした🐟💚

匕甚

Semantic Commit Messages

51
25
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
51
25