I know that you can revert back to a previous commit but it doesn't sound like the history will be gone. How can I revert back to a previous commit and make sure the commits that came after are gone forever?
Git reset command can achieve this.
You can run the git reset --hard
command to revert back to a previous commit. Then run git push --force
command to wipe out all the commits came after this commit on server.
git clone <repo_url> #clone your azure git repo to local
git checkout <branch>
git reset --hard <commithash> #revert back to a the previous commit
git push --force #push to remote server
After you run above git commands locally. You will see on azure devops git the commits coming after are gone.
While code approach is available, Azure DevOps website provides very quick method.
Go to Azure DevOps -> Your Repository -> Switch to the Working branch where you just made the commit that needs to be changed.
Go to History and click on the commit that needs to be reversed.
It will automatically create a new branch and will ask you to approve a pull request from this new branch to your working branch. Complete this pull request.
Verify that your commit has been reversed in the working branch as expected.
Note: At times if there are multiple dependencies on a commit, it might throw an error. But usually, it works fine.
Git reset --hard
is not safe to run on public branches. It will necessitate a force push, and anyone else that pulled the branch in between the bad commit and the force push will run into issues.
The recommended approach is the revert button in ADO as referenced in another comment. If that fails, this can also be done locally in similar fashion. If you know the hash, you can simply run git revert <yourhash>
, and it will do the same revert that ADO does. After this, it's the same push process that you would do anywhere else.
How to Remove a Pushed Commit from a Remote Repository
Check Out to a New Branch (Optional):
git checkout -b temp-branch
Identify the Commit Hash:
git log
Reset to the Previous Commit:
git reset --hard <previous_commit_hash>
Force Push the Changes:
git push origin <branch_name> --force
this might need an authentication with you | happened with me in Azure Devops.
Force pushing rewrites the commit history on the remote repo. This can be confusing or cause problems for others working on the same branch. Make sure to communicate with your team before doing this.
© 2022 - 2025 — McMap. All rights reserved.