How to Use Git Force Pull Properly

how to use of git force pullWhen multiple users are working with the same Git files and folders, you can run into conflict issues that might be tricky. In most cases, you want to resolve the conflicts manually. However, there might be cases where you want to git force pull to overwrite your local changes. The git pull command might not be enough to force this kind of overwrite. Let’s create a situation where this might happen.

Warning: The below technique to force git pull will delete your local changes. If you’re trying this out in a live environment, you can end up losing your work. The example below starts from scratch, so you can try it out on the test repository before you use it with a real environment.

Initial data

Let’s create the following directories:

Let’s create an empty repository:

This is going to be the remote repository. Now let’s go into the user1 folder, clone the empty repository, and add two files (ReadMe.txt and Image1.txt). Then, push the change to the remote repository (please use your clone path).

Now let’s go to the user2 folder and clone the remote repository.

Your directories should look as follows:

Both user1 and user2 have the same Image1.txt and ReadMe.txt files.

Conflict case

Now let’s create the conflict situation. Both users start working on Image2.txt file locally. After a while, user1 commits and pushes the changes to remote repository.

In the user1/myproject folder, the following steps take place:

You can check the history:

Now let’s go to the user2/myproject folder. User2 creates and commits the code locally.

But user2 decides to see if any other user has made changes. So user2 pulls changes and runs into a problem:

At this stage, if you check the history of user2’s workspace, you see that user2 has the following log:

The conflict can be manually resolved. But user2 decides to get rid of the local changes and start from where user1 left off.

Conflict resolution using git force pull

The following method is the most effective way to force git pull:

(If you are working with branches, use the branch name instead of master branch). Now if you check user2 history, you see that 1e2c8d3 change has been replaced by 3713dfc change (Your local hashes will be different).

So the git force pull has got rid of user2’s local changes and reset it to origin master.

Special Tip: During a continuous integration/continuous delivery (CI/CD) process, the CI/CD system might not pull the latest changes if the workspace is not cleaned properly. You can use the above method to make sure all of your versioned files are force synced with your remote origin. Also, if you want to get rid of untracked files, you can use the following git command:

Warning: The above command will delete all untracked files from your workspace.

Conclusion

Using the above technique to force overwrite your current workspace can save your time. However, use this technique with caution. If you make it a regular habit, you might mistakenly use it and lose your local work unintentionally.

ITsyndicate contact form

Contact us if you have any questions!