前回の記事では git pull を解説しました。
git pull は
GitHub → ローカル
へ変更を取り込む操作でした。
しかしGitを使った開発では次の作業が頻繁に発生します。
featureブランチで開発
↓
mainブランチへ反映
このときに使うコマンドが
git merge
です。
この記事では次の内容を解説します。
- git mergeとは
- mergeの仕組み
- mergeの基本コマンド
- fast-forward merge
- mergeの注意点
git mergeとは
git merge は
ブランチを統合するコマンド
です。
例えば次のような状況があります。
main
└ commit1
└ commit2
ここで新しいブランチを作ります。
feature-login
開発すると
main
└ commit1
└ commit2
\
feature-login
└ commit3
└ commit4
この変更を main に取り込むのが
git merge
です。
mergeの基本コマンド
まず main ブランチへ移動します。
git switch main
その後 merge を実行します。
git merge feature-login
これで
feature-login
の変更が
main
に反映されます。
mergeのイメージ
merge前
main
└ A
└ B
\
C
D
merge後
main
└ A
└ B
└ C
└ D
このように履歴が統合されます。
fast-forward merge
Gitには fast-forward merge という仕組みがあります。
これは
単純に履歴を前に進める
mergeです。
例
main
└ A
└ B
feature
A
B
C
この場合 mergeすると
A
B
C
になるだけです。
これが
fast-forward merge
です。
merge commit
場合によっては
merge commit
が作成されます。
例
A
B
\
C
merge後
A
B
C
M
この
M
が merge commit です。
mergeのメリット
mergeを使うことで
複数の開発を統合
できます。
例えば
login機能
payment機能
UI修正
などの変更を1つにまとめられます。
mergeの注意点
mergeを行うと
コンフリクト
が発生することがあります。
コンフリクトとは
同じファイルの同じ場所
を複数人が変更した場合に発生します。
例
<<<<<<< HEAD
コードA
=======
コードB
>>>>>>> feature
この場合
手動で修正
する必要があります。
mergeを使った開発フロー
一般的な開発の流れ
main
↓
featureブランチ作成
↓
開発
↓
git push
↓
Pull Request
↓
merge
GitHubでは
Pull Request
からmergeすることが多いです。
mergeのコマンドまとめ
基本
git merge ブランチ名
例
git merge feature-login
mergeとpullの違い
混乱しやすいポイントです。
| コマンド | 役割 |
|---|---|
| git pull | リモート変更取得 |
| git merge | ブランチ統合 |
まとめ
この記事では git merge を解説しました。
重要なポイント
git merge = ブランチ統合
基本コマンド
git merge ブランチ名
mergeを理解すると
チーム開発
がスムーズになります。
次の記事
次回は
Gitコンフリクト(merge conflict)
を解説します。
ここでは
- コンフリクトの原因
- 解決方法
- 実務での対応
を説明します。


コメント