Git cannot-pull-with-rebase-unstaged-changes Git refused a pull configured for rebase because tracked files carry uncommitted edits.
Reviewed for reference consistency: August 11, 2026
Code is Safe
SECUREGit has paused the operation to protect your code. No data has been lost or corrupted.
What To Know
Where Did It Fail?
Commands That Trigger This
Technical Background
This guard comes from the rebase step of a pull, not from the fetch. The download of remote commits succeeds; what fails is the planned replay of your local work on top of them. A rebase moves commits one by one, and uncommitted edits could be swept into the wrong commit or lost mid-replay, so Git declines to start.
The message pairs with its companion line 'Please commit or stash them.' Neither phrase signals damage — the fetch already succeeded, and every local change still sits exactly where it was.
The same precondition backs direct rebases; the pull variant announces itself with 'cannot pull with rebase' because rebase was chosen by configuration rather than by an explicit rebase command.
Underlying Causes
Frequently Asked Questions
Yes. The failure happens after the fetch, at the point where Git would begin replaying your commits, so the remote-tracking branch is current once the command finishes.
Without --rebase or pull.rebase=true, a pull integrates by merge, and merging tolerates uncommitted changes unless the incoming edits touch the same files.
Stashing is the common detour, but committing the work first reaches the same state; either path hands the rebase a clean tree to run in.
Related Git States
Git aborted the merge to protect uncommitted changes in your working directory.
Reapplying a stash hit conflicts, and the stash entry was deliberately kept.
You tried to run a Git command while a previous rebase operation is still paused.
Git declined to start a rebase while the working tree holds unstaged modifications.