TWBMT

技術的な記事や覚書について書いていきます。その内、自作サイトとかに技術記事をまとめたい。

【はじめてのIT勉強会】自分の為に小さくコミットをする【Git】

はじめに

はじめてのIT勉強会アドベントカレンダー '21 Advent Calendar 2021 - Adventarの17日目ですね。
投稿が遅れてしまい、申しありません

「はじめてのIT勉強会」ということで、
プログラマーとして「1年目に知っておければ良かった」という事を記事にしてみました。

この記事で伝えたいこと

最近、小さいコミットを心がける様にしてから、少しずつミスが減ったり作業の質が上がったりと良いことが多いと感じました。

そこで、今回の記事を通して、

  • 小さくコミットをすると見直ししやすくて良いぞ
  • 具体的にはコミットにプレフィックスをつけると良いぞ

という事を伝えられればと思います。

コミットを小さくすると起こる良いこと

さくっとまとめると以下の2つのことが得られました。

  1. ミスの減少
    これは「大きい差分を丁寧に見直すよりも小さい差分を細かく見直す方が簡単」だからです。
    当たり前の事だと思うのですが、これは実際にコミットと見直しを行ってみて気づきました。

  2. 思考の整理 これは後述のプレフィックスを意識しているお陰です。
    なのでコミットを小さくしたお陰という訳ではないのですが、コミットと作業の意味がより明確に紐づく事によって自分の作業の整理がしやすくなりました。

どちらも早くから取り組む程、効果が大きいと思います。
本当、もっと早く実践出来ていればと思うばかりですね。。。笑

コミットを自然と小さくする方法

たとえ知識として「〇〇した方が良い」と知っても、実際に実践に移すことは難しいと思います。

そこで最初の一歩として取り入れてみて欲しいことは
「Gitのコミットにプレフィックスをつける」
ということです。

プレフィックスをコミットする時につけるだけで、自然とコミットが小さくなっていきます。 僕の場合は好きなフレームワークのangularのコミット規約を採用していて、このプレフィックス達をコミットする時につけています。

プレフィックス 意味
build ビルドシステムや外部依存関係に影響を与える変更
ci CIの設定ファイルやスクリプトへの変更
docs ドキュメントのみの変更
feat 新機能
fix バグフィックス
perf パフォーマンス向上のためのコード変更
refactor バグ修正も機能追加もしないコード変更
test 不足しているテストの追加や既存のテストの修正

引用元 angular/CONTRIBUTING.md at master · angular/angular · GitHub

極端な例えですが、1つのコミットにまとめていた差分にプレフィックスをつけるとfeatdocsのコミットに分割する必要が出てきたりします。
これは自然とコミットを分割する基準が出来るということです。

この「自然と」コミットの分割が強制される点が凄くオススメしたい理由です。
プレフィックスをつける内にコードの修正とREADMEの更新で分割したり、バグフィックスと機能追加が別コミットに分けなければいなくなり、そうしている内に自然と小さくコミットする様になっていくと思います。

コミット分割の最初の一歩・基準として凄く良いと思うので是非取り入れてみてください。

まとめ、あとがき

まとめると以下の通りとなります。

  • コメントにプレフィックスをつける
  • 自然とコミットが分かれる様になる
  • コミットが小さいと見直しがしやすくなりミスが減る

こんな感じですね。

ケアレスミスを改善しようと取り組む中で上で述べたような小コミットと見直しの取り組みに行き着きました。
正直、現在進行形で取組中・改善中なのですが、もう少し早めに気づけていればと思うばかりです。

だからこそ、少しでも誰かの為になればと思ってこの機会に記事にしてみました。何か参考になれば幸いだと思います。
読んでいただいた方々、ありがとうございました。