44 lines
1.7 KiB
Markdown
44 lines
1.7 KiB
Markdown
|
---
|
||
|
title: Override Local Files with Git Pull
|
||
|
---
|
||
|
# When do you need to overwrite local files?
|
||
|
|
||
|
If you feel the need to discard all your local changes and just reset/overwrite everything with a copy from the remote branch then you should follow this guide.
|
||
|
|
||
|
Important: If you have any local changes, they will be lost. With or without `--hard` option, 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.
|
||
|
|
||
|
## The Overwrite workflow:
|
||
|
|
||
|
To overwrite your local files do:
|
||
|
|
||
|
git fetch --all
|
||
|
git reset --hard <remote>/<branch_name>
|
||
|
|
||
|
For example:
|
||
|
|
||
|
git fetch --all
|
||
|
git reset --hard origin/master
|
||
|
|
||
|
## How it works:
|
||
|
|
||
|
`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`.
|
||
|
|
||
|
## Additional Information:
|
||
|
|
||
|
It's worth noting that it is possible to maintain current local commits by creating a branch from `master` or whichever branch you want to work on before resetting:
|
||
|
|
||
|
For Example:
|
||
|
|
||
|
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.
|
||
|
|
||
|
## Attribution:
|
||
|
|
||
|
_This article is based on a Stack Overflow question <a href='http://stackoverflow.com/questions/1125968/force-git-to-overwrite-local-files-on-pull/8888015#8888015' target='_blank' rel='nofollow'>here</a>_
|