0
0

【図解】Git でのブランチマージ戦略まとめ

Posted at

Gitでのブランチのマージ戦略にはいくつかの主要な方法があります。それぞれの方法には特定の使用シナリオと利点があります。ここでは、最も一般的なマージ戦略をいくつか紹介し、それぞれを図解します。

1. Fast-Forward Merge

使用シナリオ: ブランチがベースブランチから分岐して以降、ベースブランチに変更がない場合。

使い方: git merge <branch>

図解:

A---B---C  master
         \
          D---E  feature

After Fast-Forward Merge:

A---B---C---D---E  master

2. 3-Way Merge (No Fast-Forward)

使用シナリオ: ベースブランチとマージするブランチの両方でコミットが行われている場合。

使い方: git merge --no-ff <branch>

図解:

A---B---C  master
         \
          D---E  feature

After 3-Way Merge:

A---B---C-------F  master
         \     /
          D---E  feature

ここで、Fは新しいマージコミットです。

3. Squash Merge

使用シナリオ: マージするブランチのコミット履歴を単一のコミットにまとめたい場合。

使い方: git merge --squash <branch>

図解:

A---B---C  master
         \
          D---E  feature

After Squash Merge:

A---B---C---F  master

ここで、FはDとEの変更を含む新しい単一コミットです。

4. Rebase

使用シナリオ: ブランチのベースを最新のコミットに移動したい場合。これにより、リニアなプロジェクト履歴が保たれます。

使い方: git rebase master (featureブランチ上で実行)

図解:

A---B---C  master
         \
          D---E  feature

After Rebase:

             D'---E'  feature
            /
A---B---C  master

リベース後、featureブランチはmasterブランチの最新コミットから分岐しています。

これらのマージ戦略は、プロジェクトの要件やチームのワークフローに応じて選択されます。Fast-Forwardと3-Way Mergeは最も一般的に使用される戦略ですが、Squash MergeやRebaseも特定の状況で非常に有用です。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0