Git を使って開発を進める際、コミット履歴が煩雑になってしまうことはよくあります。そんなときに便利なのが スカッシュマージ(Squash Merge) です。本記事では、スカッシュマージのメリットや使い方を解説します。
スカッシュマージとは?
スカッシュマージとは、ブランチをマージする際に 複数のコミットを1つにまとめて 取り込む方法です。通常のマージでは個々のコミットがそのまま残りますが、スカッシュマージを使うと履歴がスッキリします。
スカッシュマージのメリット
- コミット履歴が整理される – 不要な「修正」や「調整」コミットがなくなり、履歴が見やすくなる。
- レビューがしやすい – 大量の細かいコミットを追う必要がなく、変更内容を簡単に把握できる。
- チーム開発がスムーズに – きれいな履歴は、他の開発者が理解しやすく、共同作業がしやすい。
スカッシュマージの使いどころ
Git Flow でのスカッシュマージ
Git Flow では、機能ブランチ (feature branch) から develop ブランチへ統合する際にスカッシュマージを使用すると、 個々の機能開発中の細かいコミットを整理し、開発履歴をシンプルにできます。
GitHub Flow でのスカッシュマージ
GitHub Flow では、短期間での開発を前提としており、プルリクエスト (Pull Request) をマージする際にスカッシュマージを利用すると、 履歴を一つのまとまりとして管理しやすくなります。特に、頻繁なブランチ作成とマージを行う場合に効果的です。
Issue 単位で PR を作成してマージ
Issue 単位でプルリクエスト (PR) を作成し、スカッシュマージを行うことで、 Issue とコミットの関連性を明確にする ことができます。 これにより、履歴を追いやすくなり、リリースの内容も整理されて分かりやすくなります。
そもそも、細かいコミットは不要です。Issue 単位でコミットをまとめることで十分であり、 開発履歴がシンプルになり、チーム全体の開発効率が向上します。
スカッシュマージの使い方
GitHub の場合
GitHub のプルリクエストでスカッシュマージを行うのは簡単です。
- プルリクエストを開く
- 「Squash and Merge」ボタンをクリック
- コミットメッセージを編集して「Confirm」
コマンドラインの場合
ローカル環境でスカッシュマージをするには、以下の手順を実行します。
# 対象ブランチにチェックアウト
$ git checkout main
# スカッシュマージ
$ git merge --squash feature-branch
# まとめた変更をコミット
$ git commit -m "まとめた変更のメッセージ"
# リモートにプッシュ
$ git push origin main
まとめ
スカッシュマージを活用すれば、Git の履歴を整理し、開発の効率を向上させることができます。 Git Flow や GitHub Flow などのワークフローに応じて適切に活用し、チーム開発をスムーズに進めましょう。
特に Issue 単位で PR を作成し、細かいコミットを減らすことで、 履歴の可読性が向上し、リリースの内容も整理しやすくなります。 スカッシュマージを積極的に活用して、きれいな開発フローを実現しましょう!
コメント