Communities

Writing
Writing
Codidact Meta
Codidact Meta
The Great Outdoors
The Great Outdoors
Photography & Video
Photography & Video
Scientific Speculation
Scientific Speculation
Cooking
Cooking
Electrical Engineering
Electrical Engineering
Judaism
Judaism
Languages & Linguistics
Languages & Linguistics
Software Development
Software Development
Mathematics
Mathematics
Christianity
Christianity
Code Golf
Code Golf
Music
Music
Physics
Physics
Linux Systems
Linux Systems
Power Users
Power Users
Tabletop RPGs
Tabletop RPGs
Community Proposals
Community Proposals
tag:snake search within a tag
answers:0 unanswered questions
user:xxxx search by author id
score:0.5 posts with 0.5+ score
"snake oil" exact phrase
votes:4 posts with 4+ votes
created:<1w created < 1 week ago
post_type:xxxx type of post
Search help
Notifications
Mark all as read See all your notifications »
Q&A

Welcome to Software Development on Codidact!

Will you help us build our independent community of developers helping developers? We're small and trying to grow. We welcome questions about all aspects of software development, from design to code to QA and more. Got questions? Got answers? Got code you'd like someone to review? Please join us.

Comments on Is it possible to undo a git reset?

Parent

Is it possible to undo a git reset?

+10
−0

For some reason, I just wanted to undo a commit on my git repository, which I've done with the following command:

git reset --soft HEAD~1

So far, so good. However, by mistake I issued the command a second time, thus deleting also an earlier commit. It also turned out that I had forgotten to push that change.

Now I do have a backup of the previous state, but that's on an external disk that's at a different place than me currently.

Now the change itself was pretty trivial (and of course is still contained in the collective changes in the working directory; indeed I could just re-apply it by checking in one file), but of course all the metadata is gone (in particular, the change date).

Now I'd like to not wait until I have access to the hard disk with the backup again, but I'd also like not to lose that metadata in the repo.

Does git have the possibility to restore the deleted update somehow? The mistaken reset currently is the last thing done on the repo.

If not, is it possible to just commit new stuff (that includes that change), and then later re-insert that version in the version history from the backup, so that afterwards it looks as if the commit had never been deleted?

History
Why does this post require attention from curators or moderators?
You might want to add some details to your flag.
Why should this post be closed?

0 comment threads

Post
+6
−0

From the Git docs

"reset" copies the old head to .git/ORIG_HEAD

To restore that commit, you can run

$ git reset ORIG_HEAD

If you want to restore more than one reset, then you'll have to look for the commit id. If you already know it, you can just do

$ git reset <commit>

If you don't, then you can use git reflog to try to find that earlier commit. (kudos here)


For anyone who wants to take the opportunity to change something before reapplying the commit, the Git documentation has a section specifically titled Undo a commit and redo. You can run

$ git commit -a -c ORIG_HEAD

Note that this only works to restore one commit

History
Why does this post require attention from curators or moderators?
You might want to add some details to your flag.

1 comment thread

Than you, that was very helpful. (1 comment)
Than you, that was very helpful.
celtschk‭ wrote over 2 years ago

Thank you for your answer; while the other answer gave me the understanding I needed to do it, the information in your answer made actually correcting my mistake far more easy than it would have been otherwise.