How To Fix ‘Updates Were Rejected’ Error In Git


By squashlabs, Last Updated: October 26, 2023

How To Fix ‘Updates Were Rejected’ Error In Git

When working with Git, you may encounter the error message “Updates were rejected because the tip of your current branch is behind.” This error typically occurs when you try to push your changes to a remote repository but someone else has already pushed changes to that same branch. In this scenario, Git prevents you from overwriting the changes made by others to avoid conflicts and data loss.

Potential Reasons for the Error

There are several potential reasons why you might encounter the “Updates were rejected” error in Git:

1. Concurrent changes: Another person or team has made and pushed changes to the same branch that you are working on. Git detects this and prevents you from pushing your changes, as it would overwrite the changes made by others.

2. Local commits not pushed: You have made local commits but have not yet pushed them to the remote repository. When you try to push your changes, Git detects that your local branch is behind the remote branch and rejects the updates.

Related Article: How to Fix Git Permission Denied Publickey Error

How to Fix the Error

To fix the “Updates were rejected” error in Git, you can follow one of the two approaches below:

Approach 1: Pull Changes and Resolve Conflicts

1. Start by pulling the latest changes from the remote repository. This will update your local branch with the changes made by others.

git pull origin <branch-name>

2. After pulling the changes, Git may detect conflicts between your local changes and the changes from the remote repository. Conflicts occur when both you and others have made changes to the same lines of code. Git will mark the conflicting lines in the affected files.

3. Open the conflicting files in a text editor and manually resolve the conflicts. Look for the Git conflict markers (>>>>>>) and edit the code to merge the conflicting changes.

4. After resolving the conflicts, save the files and stage them for commit.

git add <file1> <file2> ...

5. Commit the changes with a descriptive message.

git commit -m "Merge conflicting changes"

6. Finally, push your changes to the remote repository.

git push origin <branch-name>

It is generally not recommended to overwrite remote changes, as it can lead to data loss and conflicts. However, there may be situations where you have a valid reason to do so. In such cases, you can force-push your changes to the remote repository.

1. Before proceeding with the force push, make sure you have a backup of any important changes made by others.

2. Force-push your changes to the remote repository.

git push -f origin <branch-name>

Remember that force-pushing can overwrite existing changes made by others and should be used with caution. It is recommended to communicate with your team members and discuss the situation before resorting to a force push.

Related Article: How to Fix Git Error: Could Not Read From Remote Repository

Best Practices and Suggestions

To avoid encountering the “Updates were rejected” error in the first place, consider following these best practices:

1. Pull frequently: Regularly pull changes from the remote repository to keep your local branch up to date. This helps to minimize conflicts with other team members’ changes.

2. Communicate with your team: If you are working on a shared branch, communicate with your team members to ensure everyone is aware of ongoing changes. This can help prevent conflicts and the need for force-pushes.

3. Use feature branches: Instead of directly working on the main branch, create feature branches for each new feature or bug fix. This allows you to work independently and reduces the chances of conflicts with others.

4. Resolve conflicts promptly: When conflicts occur, address them promptly to prevent delays in merging and pushing changes. Regularly review and resolve conflicts as soon as they arise.

5. Review changes before merging: Before merging your changes to the main branch, review the code and ensure that it does not conflict with other changes. This can help identify and resolve conflicts early on.

More Articles from the Git Tutorial: From Basics to Advanced Concepts series:

How to Git Ignore Node Modules Folder Globally

Setting up Git to ignore node_modules folders globally can greatly simplify your development workflow. This article provides a simple guide on how to achieve this,... read more

Fixing the Git Error: ‘Fatal Not Possible To Fast Forward’

Handling the 'Error Fatal Not Possible To Fast Forward Aborting' message in Git can be challenging, but with the right knowledge, you can overcome it. This article will... read more

How To Fix Gitignore Not Working

Gitignore is a useful tool for preventing unwanted files from being tracked in Git. However, there are times when gitignore may not work as expected. In this article, we... read more

Fixing the Git Error: “Git Not Recognized As A Command”

Learn how to resolve the 'git' is not recognized error in simple steps. Understand the potential reasons for the error, explore solutions to fix it, and discover best... read more

How To Handle Git Refusing To Merge Unrelated Histories On Rebase

Git refusing to merge unrelated histories on rebase can be a frustrating issue to encounter. This article provides possible answers and suggestions to help you handle... read more

How To Use Git Reset Hard Head To Revert To A Previous Commit

Reverting to a previous commit in your Git repositories can be a simple and process using the git reset --hard HEAD command. This article will guide you through the... read more