---
title: "How to resolve Git merge conflicts and rebase failures on GitHub."
description: "Highlight multi-way Git conflict markers (<<<<<<< HEAD) or rebase error logs on GitHub and understand which incoming changes to keep and which to discard."
canonical_url: "https://vezz.me/use-cases/explain-git-merge-conflicts-and-rebase-errors/"
type: "pseo-use-cases"
category: "use-cases"
topic: "Git & Version Control"
intent: "Best for developers reviewing complex merge conflicts in GitHub PR web editors or debugging interactive rebase failures."
---

# How to resolve Git merge conflicts and rebase failures on GitHub.

Highlight multi-way Git conflict markers (<<<<<<< HEAD) or rebase error logs on GitHub and understand which incoming changes to keep and which to discard.

> **Best fit:** Best for developers reviewing complex merge conflicts in GitHub PR web editors or debugging interactive rebase failures.

## Live Webpage Walkthrough

- **Source:** GitHub Web Conflict Editor — Database Migration State (`github.com/org/web-app/pull/239/conflicts`)
- **Recommended Context Mode:** Detailed

**Highlighted Passage:**
> <<<<<<< HEAD
export const CURRENT_SCHEMA_VERSION = 42;
export async function runMigrations(db: Database) {
  await db.execute('ALTER TABLE users ADD COLUMN avatar_url TEXT;');
=======
export const CURRENT_SCHEMA_VERSION = 43;
export async function runMigrations(db: Database) {
  await db.execute('ALTER TABLE users ADD COLUMN phone_number TEXT;');
>>>>>>> feature/user-phone-auth

**User Question (Shortcut):** "How do I resolve this migration version conflict cleanly without dropping either column?"

**Vezz me On-Screen Answer:**
**Both branches bumped `CURRENT_SCHEMA_VERSION` and added different columns to `users`**.

To keep both migrations:
1. Bump `CURRENT_SCHEMA_VERSION` to **`44`**.
2. Execute both `ALTER TABLE` statements in sequence:
```typescript
export const CURRENT_SCHEMA_VERSION = 44;
export async function runMigrations(db: Database) {
  await db.execute('ALTER TABLE users ADD COLUMN avatar_url TEXT;');
  await db.execute('ALTER TABLE users ADD COLUMN phone_number TEXT;');
}
```

**Suggested Follow-Ups:**
- "How do we prevent migration version collision conflicts across team PRs?"
- "Explain the difference between `git merge` and `git rebase` for this PR."

## Step-by-step workflow

1. **Highlight the conflict block including markers (`<<<<<<<`, `=======`, `>>>>>>>`)**: Select the conflicting code block in GitHub's web editor, GitLab diff viewer, or terminal output.
2. **Press your shortcut and ask what each branch intended to do**: Vezz me separates what `HEAD` (the target branch) changed from what the incoming feature branch changed.
3. **Request a merged snippet that preserves both intents**: Ask Vezz me for the clean resolution code without any remaining conflict markers.

## Resolve conflicts without breaking teammate code

Accidentally deleting a teammate's changes while resolving a 5-file merge conflict is one of the most common causes of regression bugs.

- Explains the semantic intent of both `HEAD` and the incoming branch side-by-side
- Merges import statements, schema versions, and enum additions correctly
- Identifies subtle rebase traps (e.g., changes to function signatures in file A while file B called the old signature)

## Resolving Git Merge Conflicts

Comparing in-page AI resolution with manual guessing.

| Method | Preserves Both Branch Intents | Speed on Web PR Editor |
| --- | --- | --- |
| Vezz me on Conflict Block | Yes (understands semantic goal of both branches) | Instant (resolves right inside GitHub's conflict UI) |
| Accepting 'Ours' or 'Theirs' blindly | Fast resolution | Silently deletes one developer's feature work |
| Manual 3-way diffing in local IDE | Complete multi-file conflict sets | Requires pulling branches and running local git rebase loops |

## Frequently asked questions

### Does Vezz me work in GitHub's online conflict editor?

Yes! Highlight any text in GitHub's web conflict resolver (`/pull/X/conflicts`) and press your shortcut (default: Ctrl+Shift+X).

### Can it explain confusing git rebase terminal errors?

Yes. Highlight error output like `error: could not apply [commit]... fatal: rebase in progress` and ask Vezz me how to abort or continue cleanly.

### Where can I read our guide to using Vezz me on GitHub?

See our complete guide: Vezz me on GitHub.

## Related guides

- [Vezz me on GitHub](https://vezz.me/for/github/): How to use Vezz me across PRs, diffs, and Actions logs.
- [Summarize GitHub Pull Requests & Issues](https://vezz.me/use-cases/summarize-github-pull-requests-and-issues/): Triage long issue threads and multi-commit PRs.
- [Senior Engineer Code Reviewer Preset](https://vezz.me/prompts/senior-engineer-code-reviewer/): Review resolved conflicts before merging to main.
- [Explain Code Snippets & Errors](https://vezz.me/use-cases/explain-code-snippets-and-errors/): Debug runtime and syntax errors in unfamiliar code.
