Any uncommitted local changes to tracked files will be lost.
Any local files that are not tracked by Git will not be affected.
First, update all
origin/<branch> refs to latest:
git fetch --all
Backup your current branch (e.g.
git branch backup-master
Jump to the latest commit on
origin/master and checkout those files:
git reset --hard origin/master
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
Maintain current local commits
[*]: 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
Uncommitted changes, however (even staged), will be lost. Make sure to stash and commit anything you need. For that you can run the following:
And then to reapply these uncommitted changes:
git stash pop