dev@local: ~/project — git
dev@local~/project$git merge <branch>
Auto-merging src/components/App.tsx
CONFLICT (content): Merge conflict in src/components/App.tsx
error: merge conflict
Automatic merge failed; fix conflicts and then commit the result.
Diagnostics Translation
Git paused the merge because it cannot automatically resolve overlapping changes.
waiting for resolution...
MediumVersion Control System

Reviewed for reference consistency: April 11, 2026

Code is Safe

SECURE

Git has paused the operation to protect your code. No data has been lost or corrupted.

What To Know

This state usually means Git has both histories safely in hand and is waiting for a human choice about overlapping changes.

Where Did It Fail?

Working Tree
Your local files
add
Staging Index
Prepared changes
commit
Local Repo
Commit history
push/fetch
Remote Server
GitHub/GitLab
Git halted to protect the uncommitted files in your active working directory.

Commands That Trigger This

$git merge <branch>
Running when the target branch has diverging edits
$git pull
Running , which attempts an implicit merge from a remote tracking branch
$git rebase
Applying a patch or running /`git cherry-pick` over conflicting commits

Technical Background

01

A merge conflict is not a critical failure, corruption, or data loss; it is a built-in safety mechanism.

02

Git deliberately interrupts the process rather than guessing which change to keep, ensuring the developer makes the final decision.

03

During a conflict, the repository is placed in a locked 'merging' state, preventing new standard commits until the conflict is manually resolved and added, or the merge is aborted entirely.

Underlying Causes

Two branches modified the exact same lines in a file differently
One branch modified a file while the other branch deleted it
Conflicting file renames across divergent branches

Frequently Asked Questions

No. Both sets of changes exist safely in the repository. Git has paused the operation so you can choose which parts to keep.

These are conflict markers added by Git. Everything between <<<<<<< and ======= is from your current branch, and everything between ======= and >>>>>>> is from the branch you are trying to merge.

Related Git States