Permalink
Please sign in to comment.
Showing
with
38 additions
and 0 deletions.
38
Git-Force-Git-to-overwrite-local-files-on-pull.md
| @@ -0,0 +1,38 @@ | ||
| +#### 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. <br> | ||
| +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 [here](http://stackoverflow.com/questions/1125968/force-git-to-overwrite-local-files-on-pull/8888015#8888015)* |
0 comments on commit
5380ddb