When using Git, you may encounter the following error:
error: Your local changes to the following files would be overwritten by merge
This happens when local changes conflict with updates from the remote repository. In this article, we’ll explain how to safely resolve this error and continue development without losing work.
Why This Error Occurs
The main reasons for this error are:
1. Uncommitted Local Changes
If you have modified files locally but haven’t committed them, running git pull may lead to conflicts with changes in the remote repository.
2. Conflicts With Remote Repository
If both the remote repository and your local changes modify the same part of a file, Git cannot automatically merge them.
Solution 1: Commit Your Local Changes
The safest approach is to commit your local changes before pulling from the remote repository.
Steps:
- Check your current changes:
git status
- Stage and commit changes:
git add .
git commit -m "Commit local changes"
- Pull the latest changes from the remote:
git pull origin <branch_name>
- Resolve any conflicts manually
If a conflict occurs, Git will show markers like:
<<<<<<< HEAD
Your local changes
=======
Remote changes
>>>>>>> branch_name
Edit the file to resolve conflicts, then stage and commit the changes again.
Solution 2: Use Git Stash
If you don’t want to commit your changes yet, you can temporarily stash them.
Steps:
- Stash your changes:
git stash
- Pull the latest changes:
git pull origin <branch_name>
- Apply the stashed changes:
git stash pop
- Resolve any conflicts manually, if needed.
Solution 3: Discard Local Changes
If your local changes are not needed, you can discard them and sync with the remote repository.
Steps:
- Check current status:
git status
- Discard changes to a specific file:
git restore <file_name>
- Discard all local changes:
git reset --hard
- Pull the latest remote changes:
git pull origin <branch_name>
Solution 4: Force Pull (Not Recommended)
If you want to prioritize the remote repository over local changes, you can force pull.
⚠️ Warning: This will overwrite all local changes.
git fetch --all
git reset --hard origin/<branch_name>
Best Practices
Frequent Commits
Even during active development, committing small changes frequently helps prevent conflicts and makes recovery easier.
Use Branches
Always work on a feature branch instead of directly on main or master.
Pull Regularly
Run git pull before starting work or at regular intervals to minimize differences between local and remote.
Sample Commands Summary
# Check current status
git status
# Solution 1: Commit local changes
git add .
git commit -m "WIP: in progress"
git pull origin main
# Solution 2: Stash local changes
git stash
git pull origin main
git stash pop
# Solution 3: Discard local changes (careful!)
git reset --hard
git pull origin main
# Solution 4: Force pull (not recommended)
git fetch --all
git reset --hard origin/main
References
- Qiita – How to handle errors during Git pull
- Dev.to – A Guide to Resolving Merge Conflicts in Git Pull Requests
- MiniTool – How to Fix “Your Local Changes Would Be Overwritten” in Git
- GitHub Docs – Resolving a merge conflict using the command line
By following these solutions and best practices, you can safely handle the “error: Your local changes would be overwritten” error and maintain a smooth, efficient Git workflow.


