How to Force Git Pull to Override Local Files

You may encounter a conflict issue when several users are working on the same files. There are cases when you want to force pull to overwrite the local changes from the remote branch.

Watch a course Git & GitHub - The Practical Guide

Steps to forcing git pull to override local files

Let's find out how to force git pull to overwrite your local changes and fully match your local branch to the remote.

Fetching branches

Firstly, fetch all branches with the git fetch command. The git fetch command downloads commits, files and references from all remotes into the local repository without merging and rebasing anything.

git fetch --all

Resetting changes

Then, run the git reset command with the --hard flag to change all the files in the working tree for matching the files in origin/master (suppose, the name of remote is origin, which is by default). Using the --hard option will delete any unpushed local commits and all local changes will be lost.

git reset --hard origin/<branch-name>

Maintaining current local commits

You can maintain current local commits by creating a branch from your current branch before running git reset:

git checkout <branch-name>
git branch <new-branch-to-save-current-commits>

git fetch --all
git reset --hard origin/<branch-name>

After running this, all of the old commits will be kept in <new-branch-to-save-current-commits> branch.

Uncommitted changes

If you have uncommitted changes, even if you have staged them, they will be lost after running the git reset command. If you want to save your changes to use them later, you can act as follows:

  1. Run git stash to keep your local changes in a separated place and clean your local repository.
    git stash
  2. Later, whenever you would like to apply your saved changes, you can run the following command:
    git stash pop

Using git pull

The git pull command fetches and downloads content from the remote repository and integrates changes into the local repository. It is used to update the current local working branch and the remote tracking branches for other branches. The git pull command is called as the combination of git fetch followed by git merge.