You need to make sure that no other users of this repository are fetching the incorrect changes or trying to build on top of the commits that you want removed because you are about to rewind history.
Then you need to 'force' push the old reference.
git push -f origin last_known_good_commit:branch_name
or in your case
git push -f origin cc4b63bebb6:alpha-0.3.0
You may have receive.denyNonFastForwards set on the remote repository. If this is the case, then you will get an error which includes the phrase [remote rejected].
In this scenario, you will have to delete and recreate the branch.
git push origin :alpha-0.3.0
git push origin cc4b63bebb6:refs/heads/alpha-0.3.0
If this doesn't work - perhaps because you have receive.denyDeletes set, then you have to have direct access to the repository. In the remote repository, you then have to do something like the following plumbing command.
git update-ref refs/heads/alpha-0.3.0 cc4b63bebb6 83c9191dea8
Answer from Lara Bailey on Stack OverflowYou need to make sure that no other users of this repository are fetching the incorrect changes or trying to build on top of the commits that you want removed because you are about to rewind history.
Then you need to 'force' push the old reference.
git push -f origin last_known_good_commit:branch_name
or in your case
git push -f origin cc4b63bebb6:alpha-0.3.0
You may have receive.denyNonFastForwards set on the remote repository. If this is the case, then you will get an error which includes the phrase [remote rejected].
In this scenario, you will have to delete and recreate the branch.
git push origin :alpha-0.3.0
git push origin cc4b63bebb6:refs/heads/alpha-0.3.0
If this doesn't work - perhaps because you have receive.denyDeletes set, then you have to have direct access to the repository. In the remote repository, you then have to do something like the following plumbing command.
git update-ref refs/heads/alpha-0.3.0 cc4b63bebb6 83c9191dea8
I believe that you can also do this:
git checkout alpha-0.3.0
git reset --hard cc4b63bebb6
git push origin +alpha-0.3.0
This is very similar to the last method, except you don't have to muck around in the remote repo.
Is git revert safer than reset?
Can I undo a git push without deleting my changes?
How do I undo a merge commit?
-
One of our artists managed to push 1 month of progress without merging
-
As you can see I tried to undo the commits one by one in reverse order
-
I couldn't undo the merge commit of Arvincle because it's empty
-
When I try to revert the commit before that I get one file I need to merge first, but the rest of the changes are not undone
Is there a way to reset the HEAD of main to the last valid commit?
Hi all,
I would appreciate any help you could give me as this is for a course. Everything makes sense. I just went too fast, and now I can't figure out how to undo it. There is a remote repository called "main" (we shouldn't touch this), then we create a "working" branch. We clone to a local repository on our computer, then start going down a checklist. I accidentally didn't switch to "working" and ended up pushing to "main" and now can't get it undone. I was instructed to delete the created "working" branch and everything cloned to my computer, but it still isn't correct. Help help!
In the screenshot, you can see where it says "2 days ago" for about.html, contact.html. and customers.html. Those should be 1 year like the rest. Graph you will also see where the changes are made to "main" and not "working". I've already deleted other branches. Thank you!