Signup/Sign In
Ask Question
Not satisfied by the Answer? Still looking for a better solution?

How do I force “git pull” to overwrite local files?

How do I force an overwrite of local files on a git pull?

The scenario is the following:

A team member is modifying the templates for a website we are working on
They are adding some images to the images directory (but forgets to add them under source control)
They are sending the images by mail, later, to me
I'm adding the images under the source control and pushing them to GitHub together with other changes
They cannot pull updates from GitHub because Git doesn't want to overwrite their files.
This is the error I'm getting:

error: Untracked working tree file 'public/images/icon.gif' would be overwritten by merge

How do I force Git to overwrite them? The person is a designer - usually, I resolve all the conflicts by hand, so the server has the most recent version that they just need to update on their computer.

2 Answers

To start with, run a bring to refresh all origin/<branch> refs to most recent:
git fetch --all

Backup your current branch:

git checkout -b backup-master

Then, you have two options:

git reset --hard origin/master*

OR If you are on some other branch:

git reset --hard origin/<branch_name>


git fetch downloads the latest from remote without trying to merge or rebase anything.

Then the git reset resets the master branch to what you just fetched. The --hard option changes all the files in your working tree to match the files in origin/master
You might find this command helpful to throw away local changes:

git checkout <your-branch> -f
And then do a cleanup (removes untracked files from the working tree):

git clean -f
If you want to remove untracked directories in addition to untracked files:

git clean -fd

Login / Signup to Answer the Question.