git merge Command
git merge
Command
The git merge
command is used to combine changes from different branches into a single branch. This is a crucial part of the Git workflow, allowing you to integrate changes from different lines of development.
Key Concepts of git merge
1. Purpose
The primary purpose of git merge
is to bring together the changes made in two different branches. This is commonly used to integrate feature branches back into the main branch (often main
or master
), or to synchronize changes from one branch to another.
2. Merge Process
When you perform a merge, Git will:
- Identify the Common Ancestor: Determine the most recent common commit between the branches being merged.
- Compare Changes: Compare changes made in both branches since the common ancestor.
- Merge Changes: Apply the changes from the source branch into the target branch. If changes don't conflict, Git will automatically merge them. If there are conflicts, you will need to resolve them manually.
Basic Syntax
git merge <branch-name>
<branch-name>
: The branch you want to merge into the current branch.
Example Workflow
Switch to the Target Branch: Ensure you are on the branch where you want to apply the changes.
git checkout main
Merge the Source Branch: Merge the branch with the changes you want to integrate.
git merge feature/login
- This command merges the
feature/login
branch into themain
branch.
- This command merges the
Types of Merges
1. Fast-Forward Merge
A fast-forward merge occurs when the target branch is directly behind the source branch, meaning no divergent commits exist. Git simply moves the target branch pointer forward to the latest commit of the source branch.
Example:
git checkout main git merge feature/login
If main
has no new commits since it diverged from feature/login
, Git will perform a fast-forward merge.
2. Three-Way Merge
A three-way merge occurs when the branches have diverged, meaning both branches have new commits since they split. Git creates a new merge commit that combines changes from both branches.
Example:
git checkout main git merge feature/login
If both main
and feature/login
have commits since they diverged, Git will create a new merge commit that integrates the changes.
3. Merge Conflicts
Conflicts occur when changes in the branches cannot be automatically merged by Git. You will need to manually resolve these conflicts in the affected files.
Steps to Resolve Conflicts:
Identify Conflicts: Git will mark conflicting sections in the files with conflict markers (e.g.,
<<<<<<<
,=======
,>>>>>>>
).Edit the Files: Manually resolve the conflicts by editing the files.
Stage the Resolved Files:
git add <file>
Complete the Merge:
git commit
- Git will automatically use a default commit message indicating the merge.
Summary
- Purpose:
git merge
combines changes from one branch into another, integrating developments from different lines of work. - Basic Commands:
git merge <branch-name>
: Merge the specified branch into the current branch.
- Types of Merges:
- Fast-Forward: Moves the target branch pointer forward without creating a merge commit.
- Three-Way: Creates a new merge commit to integrate divergent changes.
- Conflicts: Requires manual resolution if automatic merging fails.
The git merge
command is essential for integrating changes in collaborative environments, allowing multiple developers or teams to combine their work into a single, cohesive codebase.