---
title: キレイなコミットでプロジェクトを支える～質の高いGit履歴の作り方～
tags:  #git #コミット  
author: [Tomohiro K](https://www.docswell.com/user/rowpure)
site: [Docswell](https://www.docswell.com/)
thumbnail: https://bcdn.docswell.com/page/L73PMPD5E5.jpg?width=480
description: 本プレゼンテーションでは、質の高いGit履歴の作り方について詳しく解説しています。キレイなコミットとは、単一の目的を持ち、分かりやすいメッセージで変更内容を明確にしたものです。悪いコミットの問題や、それが将来の保守性に与える影響を説明し、具体的なコミットメッセージの書き方やコミットの粒度についても触れています。また、コミット履歴の整理方法として、rebaseやsquashを用いることで一貫性を持たせる方法を説明しています。
published: December 04, 24
canonical: https://www.docswell.com/s/rowpure/Z4V7XJ-2024-12-04-220000
---
# Page. 1

![Page Image](https://bcdn.docswell.com/page/L73PMPD5E5.jpg)

キレイなコミットで
プロジェクトを支える
～質の高い Git 履歴の作り方～
Tomohiro K
1


# Page. 2

![Page Image](https://bcdn.docswell.com/page/87DL6LPYEG.jpg)

自己紹介
Tomohiro K
バケツをひっくり返したような
雨が降ると自宅の部屋が
雨漏りするようになりました
2


# Page. 3

![Page Image](https://bcdn.docswell.com/page/VJP2Y2N2J8.jpg)

今日いいたいこと
開発者たるもの
キレイな Git コミットを残せるようになろう
3


# Page. 4

![Page Image](https://bcdn.docswell.com/page/2EVDGDKXEQ.jpg)

目次
1.
2.
3.
キレイなコミットとは
○
コミットの粒度
○
コミットメッセージに含めるべき情報
悪いコミットの問題
○
悪いコミットとは
○
将来の保守性への影響
キレイなコミットの残し方
○
キレイなコミットメッセージの書き方
○
コミット分割のタイミング
○
コミット履歴の整理方法
4


# Page. 5

![Page Image](https://bcdn.docswell.com/page/57GY8YQR7L.jpg)

キレイなコミットとは
単一の目的を持ち、分かりやすいメッセージで変更内容を明確にしたもの
悪い例
README 更新
良い例
docs: #123 READMEにインストール手順を追加
5


# Page. 6

![Page Image](https://bcdn.docswell.com/page/4EQM9MKYJP.jpg)

コミットの粒度
小さな独立した変更ごとに行い、 1つの目的に集中できる単位
悪い例
いくつかの対応を実施
良い例
fix: #123 メインページのボタン位置を修正
feat: #123 ログイン機能を追加
一つのコミットで「 UIの修正」
「新機能追加」「バグ修正」を行う
fix: #123 ログインで発生するワーニングエラーを
修正
6


# Page. 7

![Page Image](https://bcdn.docswell.com/page/KJ4VXVPZE1.jpg)

コミットメッセージに含めるべき情報
何を、なぜ変更したかを具体的かつ簡潔に記述する
悪い例
不具合を修正
良い例
fix: #123 チェックアウト時の価格計算が誤る
問題を修正
7


# Page. 8

![Page Image](https://bcdn.docswell.com/page/LE13N39DJG.jpg)

悪いコミットとは
曖昧なメッセージや複数の変更が含まれたコミット
例
影響
バグ修正と更新
デバッグ時に「どのバグが修正されたか」が
不明瞭で、変更箇所を特定するのが困難
8


# Page. 9

![Page Image](https://bcdn.docswell.com/page/GEWP4PQ8J2.jpg)

将来の保守性への影響
分かりやすい履歴はトラブルシューティングや新規開発を効率化してくれる
悪い例
良い例
数年前のコミットメッセージが
更新、修正などの曖昧な表現ばかり
各コミットに具体的な変更内容が
記載されている
何が行われたか分からない
履歴を確認してデバッグや機能追加が
容易に行える
9


# Page. 10

![Page Image](https://bcdn.docswell.com/page/47ZK2KW973.jpg)

キレイなコミットメッセージの書き方
プレフィックスを使い、 50文字以内で要点を伝える
例
解説
feat: #123 ホームページに検索バーを追加
プレフィックス ( fix: 修正、feat: 機能追加、等 )
fix: #123 商品説明の誤字を修正
( Backlog 課題キーや Redmine チケット番号 )
対応内容
Conventional Commits
Git - プロジェクトへの貢献 10


# Page. 11

![Page Image](https://bcdn.docswell.com/page/YJ6QVQGDJV.jpg)

コミット分割のタイミング
機能追加やバグ修正など、目的ごとにコミットを分ける
悪い例
feat: #123 ユーザー認証まわりを追加と修正
新しいAPIの実装と、既存機能の
バグ修正を一度にコミット
良い例
feat: #123 新しいAPIを使った
ユーザー認証機能を実装
fix: #123 認証後のリダイレクトが
正しく動作しない問題を修正
11


# Page. 12

![Page Image](https://bcdn.docswell.com/page/GJ5RDRV874.jpg)

コミット履歴の整理方法
不要な履歴は rebase や squash で整理して一貫性を持たせる
悪い例
fix: #123 ログインページのボタン位置修正
良い例
fix: #123 ログインページのボタン配置誤り修正
fix: #123 さっきのコミット漏れ追加
fix: #123 ログインページのボタン位置微調整
rebase や squash を使い
関連するコミットを 1つにまとめる
Git - 歴史の書き換え
12


# Page. 13

![Page Image](https://bcdn.docswell.com/page/9E2D8D3VER.jpg)

ご清聴
ありがとうございました
13


