I'm not clear on how git revert
works. For example, I want to revert to a commit six commits behind the head, reverting all the changes in the intermediary commits in between.
Say its SHA hash is 56e05fced214c44a37759efa2dfc25a65d8ae98d
. Then why can't I just do something like:
git revert 56e05fced214c44a37759efa2dfc25a65d8ae98d
Just go to previous commit and then come back to latest git stash to stash any uncommited changes. git log to check the commit hash for the previous commit you are looking for.
As is well-known, Git has been using SHA-1 to calculate a hash for each commit: For example, files, directories, and revisions are referred to by hash values unlike in other traditional version control systems where files or versions are referred to via sequential numbers.
If you want to commit on top of the current HEAD with the exact state at a different commit, undoing all the intermediate commits, then you can use reset
to create the correct state of the index to make the commit.
# Reset the index and working tree to the desired tree # Ensure you have no uncommitted changes that you want to keep git reset --hard 56e05fced # Move the branch pointer back to the previous HEAD git reset --soft "HEAD@{1}" git commit -m "Revert to 56e05fced"
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