スカッシュマージを使おう!

Git を使って開発を進める際、コミット履歴が煩雑になってしまうことはよくあります。そんなときに便利なのが スカッシュマージ(Squash Merge) です。本記事では、スカッシュマージのメリットや使い方を解説します。

スカッシュマージとは?

スカッシュマージとは、ブランチをマージする際に 複数のコミットを1つにまとめて 取り込む方法です。通常のマージでは個々のコミットがそのまま残りますが、スカッシュマージを使うと履歴がスッキリします。

スカッシュマージのメリット

  1. コミット履歴が整理される – 不要な「修正」や「調整」コミットがなくなり、履歴が見やすくなる。
  2. レビューがしやすい – 大量の細かいコミットを追う必要がなく、変更内容を簡単に把握できる。
  3. チーム開発がスムーズに – きれいな履歴は、他の開発者が理解しやすく、共同作業がしやすい。

スカッシュマージの使いどころ

Git Flow でのスカッシュマージ

Git Flow では、機能ブランチ (feature branch) から develop ブランチへ統合する際にスカッシュマージを使用すると、 個々の機能開発中の細かいコミットを整理し、開発履歴をシンプルにできます。

GitHub Flow でのスカッシュマージ

GitHub Flow では、短期間での開発を前提としており、プルリクエスト (Pull Request) をマージする際にスカッシュマージを利用すると、 履歴を一つのまとまりとして管理しやすくなります。特に、頻繁なブランチ作成とマージを行う場合に効果的です。

Issue 単位で PR を作成してマージ

Issue 単位でプルリクエスト (PR) を作成し、スカッシュマージを行うことで、 Issue とコミットの関連性を明確にする ことができます。 これにより、履歴を追いやすくなり、リリースの内容も整理されて分かりやすくなります。

そもそも、細かいコミットは不要です。Issue 単位でコミットをまとめることで十分であり、 開発履歴がシンプルになり、チーム全体の開発効率が向上します。

スカッシュマージの使い方

GitHub の場合

GitHub のプルリクエストでスカッシュマージを行うのは簡単です。

  1. プルリクエストを開く
  2. 「Squash and Merge」ボタンをクリック
  3. コミットメッセージを編集して「Confirm」

コマンドラインの場合

ローカル環境でスカッシュマージをするには、以下の手順を実行します。

# 対象ブランチにチェックアウト
$ git checkout main

# スカッシュマージ
$ git merge --squash feature-branch

# まとめた変更をコミット
$ git commit -m "まとめた変更のメッセージ"

# リモートにプッシュ
$ git push origin main

まとめ

スカッシュマージを活用すれば、Git の履歴を整理し、開発の効率を向上させることができます。 Git Flow や GitHub Flow などのワークフローに応じて適切に活用し、チーム開発をスムーズに進めましょう。

特に Issue 単位で PR を作成し、細かいコミットを減らすことで、 履歴の可読性が向上し、リリースの内容も整理しやすくなります。 スカッシュマージを積極的に活用して、きれいな開発フローを実現しましょう!

コメント

タイトルとURLをコピーしました