How do I force an overwrite of local files on a Git pull?
The scenario is following:
error: Untracked working tree file 'public/images/icon.gif' would be overwritten by merge.
--hardoption, any local commits that haven't been pushed will be lost.[*]
If you have any files that are not tracked by Git (e.g. uploaded user content), these files will not be affected.
I think this is the right way:
git fetch --all git reset --hard origin/master
OR If you are on some other branch
git reset --hard origin/your_branch
git fetch downloads the latest from remote without trying to merge or rebase anything.
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
[*]: It's worth noting that it is possible to maintain current local commits by creating a branch from
master before resetting:
git checkout master git branch new-branch-to-save-current-commits git fetch --all git reset --hard origin/master
After this, all of the old commits will be kept in
new-branch-to-save-current-commits. Uncommitted changes however (even staged), will be lost. Make sure to stash and commit anything you need.