git mergeとは?ブランチを統合する方法 – 9/12

前回の記事では 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)

を解説します。

ここでは

  • コンフリクトの原因
  • 解決方法
  • 実務での対応

を説明します。

コメント

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