I have a remote Git repository, and I need to roll back the last n
commits into cold oblivion.
To undo the last commit from a remote git repository, you can use the git reset command. command. This will undo the last commit locally. command to force push the local commit which was reverted to the remote git repository.
Summary. If you want to test the previous commit just do git checkout <test commit hash> ; then you can test that last working version of your project. If you want to revert the last commit just do git revert <unwanted commit hash> ; then you can push this new commit, which undid your previous commit.
You can use git revert <commit>…
for all the n commits, and then push as usual, keeping history unchanged.
Or you can "roll back" with git reset --hard HEAD~n
. If you are pushing in a public or shared repository, you may diverge and break others work based on your original branch. Git will prevent you doing so, but you can use git push -f
to force the update.
elmarco is correct... his suggestion is the best for shared/public repositories (or, at least public branches). If it wasn't shared (or you're willing to disrupt others) you can also push a particular ref:
git push origin old_master:master
Or, if there's a particular commit SHA1 (say 1e4f99e in abbreviated form) you'd like to move back to:
git push origin 1e4f99e:master
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With