CommitとMergeの違いとは?Git初心者向けに役割・使い分け・業務での流れを分かりやすく解説
結論として、「Commit」は変更内容を履歴として記録する操作、「Merge」は別々に作業した変更を1つにまとめる操作です。
Gitを使い始めたばかりの方は、「CommitしたらMergeは不要なのでは?」「Mergeすると何が起きるの?」と疑問に思うことが少なくありません。実際のIT現場では、CommitとMergeは目的が異なるため、どちらも欠かせない操作です。
CommitとMergeとは?
Commit(コミット)とは
Commit(コミット)は、現在の変更内容をGitの履歴として保存する操作です。
編集したソースコードや設定ファイルを「この状態で記録する」という意味があり、後から変更履歴を確認したり、以前の状態へ戻したりできます。
Commitは自分の作業内容を記録するための操作です。
Merge(マージ)とは
Merge(マージ)は、別々のブランチで作業した変更を1つにまとめる操作です。
例えば、「開発ブランチ」で作成した機能を「main」や「master」ブランチへ取り込むときに使用します。
Mergeは複数の変更を統合するための操作です。
CommitとMergeの違い
| 項目 | Commit | Merge |
|---|---|---|
| 目的 | 変更履歴を保存する | ブランチを統合する |
| 対象 | 変更したファイル | ブランチ全体 |
| 履歴が作成されるか | 作成される | 統合内容が履歴になる |
| 単独で実行できるか | できる | 通常は複数ブランチが必要 |
| 主な利用場面 | 作業の区切り | 開発完了後の統合 |
どんな場面で使われるのか
Commitを使う場面
- バグを修正した
- 機能を追加した
- 設定ファイルを変更した
- 動作確認が完了した
Mergeを使う場面
- 開発ブランチの作業が完了した
- レビューが終わった
- mainブランチへ反映したい
- 複数人の作業をまとめたい
初心者向けにイメージすると
| 操作 | イメージ |
|---|---|
| Save | ノートに書いて保存する |
| Commit | 日記として記録する |
| Merge | 別々の日記を1冊にまとめる |
実際のIT現場での流れ
例えば、新しいログイン画面を作成する場合の流れです。
- mainブランチから新しいブランチを作成する
- ソースコードを編集する
- Saveする
- Commitする
- 必要に応じて複数回Commitする
- レビューを受ける
- 問題なければmainへMergeする
- Pushして共有リポジトリへ反映する
このように、Mergeは通常、複数回のCommitをまとめるために使用されます。
なぜMergeが必要なのか
複数人が同じブランチで直接作業すると、お互いの変更が上書きされるリスクがあります。
そこで、それぞれ専用のブランチで作業し、完成後にMergeすることで安全に開発を進められます。
チーム開発では、この運用方法が一般的です。
初心者が混乱しやすいポイント
Commitすればmainへ反映されると思ってしまう
Commitは現在のブランチに履歴を保存するだけです。
mainブランチには反映されません。
MergeするとCommitが不要になると思ってしまう
Mergeするには、まず変更内容をCommitしておく必要があります。
Commitされていない変更は、通常Mergeできません。
GUIで確認する方法
Visual Studio Codeの場合
- ソース管理を開く
- 現在のブランチを確認する
- Commitを実行する
- ブランチを切り替える
- Mergeを実行する
現在どのブランチで作業しているかを確認することが重要です。
CUI(コマンド)で確認する方法
現在の状態を確認
git status
変更内容やCommit待ちのファイルを確認できます。
Commit履歴を確認
git log
Commit履歴を確認できます。
現在のブランチを確認
git branch
現在作業しているブランチを確認できます。
Mergeを実行
git merge ブランチ名
指定したブランチの変更を現在のブランチへ統合します。
確認結果の見方
| 状態 | 意味 |
|---|---|
| Modified | 変更済みでCommit前 |
| Committed | 履歴へ保存済み |
| Merged | ブランチが統合された |
| Conflict | 競合が発生している |
業務でよくあるトラブル
Mergeできない
原因
- Commitしていない変更がある
- 同じファイルを別の人も修正している
- 競合(Conflict)が発生した
確認する順番
- git statusを確認する
- Commit漏れがないか確認する
- 現在のブランチを確認する
- 競合が発生していないか確認する
影響範囲
誤ったMergeを行うと、次のような影響があります。
- 本番環境へ不具合が反映される
- 他メンバーの変更が失われる可能性がある
- 競合の解消に時間がかかる
- レビュー済みでないコードが取り込まれる
筆者の現場経験
私が新人の頃、作業用ブランチではなくmainブランチで直接Commitしてしまい、チーム全体へ影響を与えそうになったことがありました。幸いPush前に気付きましたが、それ以来「現在のブランチを確認してからCommitする」「レビュー後にMergeする」という手順を徹底するようになりました。
新人がやりがちなミス
- mainブランチへ直接Commitする
- CommitせずにMergeしようとする
- 競合を理解せずに解消する
- レビュー前にMergeする
- どのブランチで作業しているか確認しない
現場で評価される確認手順
- 作業用ブランチで開発する
- 小さな単位でCommitする
- git statusで状態を確認する
- レビューを受ける
- Merge前に最新の変更を取得する
- 競合がないことを確認する
- Merge後に動作確認する
- Pushして共有する
上司へ報告するポイント
- どのブランチをMergeしたか
- Commit ID
- 変更内容
- レビュー完了の有無
- 動作確認結果
- 競合の有無
エスカレーションするタイミング
- 競合が解決できない
- 誤ってmainへMergeした
- 本番へ影響する変更が含まれる
- 履歴が複雑になり対応方法が分からない
- レビュー手順と異なる操作を行ってしまった
関連するIT用語
- Git
- Repository(リポジトリ)
- Branch(ブランチ)
- Stage(ステージ)
- Push
- Pull
- Pull Request
- Conflict(競合)
- Rebase
よくある質問(FAQ)
Commitだけでチームに反映されますか?
いいえ。Commitは現在のブランチの履歴を保存するだけです。共有リポジトリへ反映するにはPush、別ブランチへ反映するにはMergeが必要です。
MergeするとCommitは消えますか?
いいえ。Merge後もCommit履歴は残ります。統合された履歴として管理されます。
Mergeは毎回必要ですか?
ブランチを利用した開発では、作業内容を他のブランチへ反映する際に必要です。一方、単一ブランチで個人開発している場合は、Mergeを行わないケースもあります。
Mergeで競合が発生するのはなぜですか?
同じファイルの同じ箇所を複数人が変更した場合などに、Gitがどちらの変更を採用すべきか判断できず、競合(Conflict)が発生します。内容を確認し、正しい状態に修正してからMergeを完了させる必要があります。
まとめ
CommitとMergeはどちらもGitで重要な操作ですが、目的は大きく異なります。
- Commit:変更内容を履歴として記録する操作
- Merge:別々のブランチの変更を1つに統合する操作
- Commitを積み重ねたあとにMergeするのが一般的な開発フロー
- Merge前には現在のブランチ、Commit漏れ、競合の有無を確認することが重要
IT業務では、「作業はCommitで記録し、レビュー後にMergeで統合する」という流れを理解しておくことで、安全かつ効率的にチーム開発を進められるようになります。

コメント