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.
Post History
If you've committed, then the commit is in the git repo regardless. All git reset does is change what commit the HEAD references. If you find the hash corresponding to the commit you'd like HEAD to...
Answer
#1: Initial revision
If you've committed, then the commit is in the git repo regardless. All `git reset` does is change what commit the `HEAD` references. If you find the hash corresponding to the commit you'd like `HEAD` to reference, you could just `git reset --soft <commit hash>`. `git log --reflog` should list all the commits to `HEAD` including the ones that were reset. I believe this is reading the relevant file in `.git/logs/refs/heads` which you can also look at and may be a bit clearer. Creating a repository, making two commits, and doing a `git reset --soft HEAD^` once leads to the following output: ```sh $ git log commit 4a96a4d58f0755652e8fe007798f9d72b0541cc8 (HEAD -> master) Author: Derek Elkins Date: Fri Jun 3 14:22:32 2022 -0700 1 ``` ```sh $ git log --reflog commit e9a9e5b57da67b88bb55a02728e90b0cd91ff158 Author: Derek Elkins Date: Fri Jun 3 14:22:47 2022 -0700 2 commit 4a96a4d58f0755652e8fe007798f9d72b0541cc8 (HEAD -> master) Author: Derek Elkins Date: Fri Jun 3 14:22:32 2022 -0700 1 ``` ```sh $ cat .git/logs/refs/heads/master 0000000000000000000000000000000000000000 4a96a4d58f0755652e8fe007798f9d72b0541cc8 Derek Elkins 1654291352 -0700 commit (initial): 1 4a96a4d58f0755652e8fe007798f9d72b0541cc8 e9a9e5b57da67b88bb55a02728e90b0cd91ff158 Derek Elkins 1654291367 -0700 commit: 2 e9a9e5b57da67b88bb55a02728e90b0cd91ff158 4a96a4d58f0755652e8fe007798f9d72b0541cc8 Derek Elkins 1654291373 -0700 reset: moving to HEAD^ ```