# error: The branch 'feature-x' is not fully merged. If you are sure you want to delete it, run 'git branch -D feature-x'.

- **ID:** `git/error-branch-not-fully-merged`
- **Domain:** git
- **Category:** runtime_error
- **Verification:** ai_generated
- **Fix Rate:** 95%

## Root Cause

Attempting to delete a branch with git branch -d that has commits not reachable from the current HEAD or its upstream, indicating potential loss of work.

## Version Compatibility

| Version | Status | Introduced | Deprecated |
|---------|--------|------------|------------|
| git 1.7.0 | active | — | — |
| git 2.30.0 | active | — | — |
| git 2.45.0 | active | — | — |

## Workarounds

1. **git branch -D feature-x  # Force delete the branch if you are certain its work is no longer needed** (100% success)
   ```
   git branch -D feature-x  # Force delete the branch if you are certain its work is no longer needed
   ```
2. **git checkout feature-x && git log --oneline --not --remotes=origin  # Review unmerged commits, then merge or cherry-pick them to main before safe deletion with git branch -d** (90% success)
   ```
   git checkout feature-x && git log --oneline --not --remotes=origin  # Review unmerged commits, then merge or cherry-pick them to main before safe deletion with git branch -d
   ```

## Dead Ends

- **** — Running git merge --squash on the branch before deleting does not actually merge the commits; it only creates a squash commit that doesn't preserve history, so the branch still appears unmerged. (70% fail)
- **** — Using git branch -d after a git rebase that rewrites history may still fail because the original commits are no longer directly referenced, even if they are functionally merged. (50% fail)
