In this post I will show how I sometimes recover wrong changes (commits) in a coding project, using git on the command line.
Why would I ...
For further actions, you may consider blocking this person and/or reporting abuse
I do undo differently, in my
~/.gitconfig
I have this alias:Works great!
Awesome :) more options! I did not know about alias on git.
also a really powerful command is interactive rebase, though also it changes history for example
it means you want to make changes in last 3 commits, you can squash them, delete them, change messages, by the way I use it a lot in my feature branches even when I already pushed some commits then I do forced push to rewrite history on the server, it is ok till I know that only I work on that branch
If you just have a local commit you can also use the
git reflog
indexes to move back to a point in history even moving back from doing merges and pulls. Something likegit reset --hard HEAD@{<reflog index number>}
Reflog is life
For a quick revert you can use git reset HEAD^1 --hard and the you can commit it with additional changes. I thing this "prevents" the revert prefix in the git history. What do you think about it?
As long as the commit you are 'undoing' is local and is not part of any remote branch (you have not push-ed it yet), or if this is a one-dev pet project and you are sure nobody is 'consuming' your remote branch (and you can push to it with --force) - git reset is OK.
The thing is - it rewrites history. So if you'll make another commit on top of it but the 'undone' commit is pushed already, the history of your local branch and your remote tracking branch will diverge - and you'd have to push it either to another branch, or with --force, rewriting the remote branch. And if the remote branch is rewritten, anyone who had cloned it won't be able to pull from it any more that easily etc...
Thus the general advise is not to rewrite history of remote branches, and that's what git revert is for.
Funny side note - once seen a commit starting with a word Revert repeated 6 times o_O
Great explanation! In my case, I thought revert was better because I pushed the previous changes before.
Thanks for the suggestion. I used that before, but in the last problems where I had to undo the commits and then push the changes, that was the solution that worked for me. Also, I didn't mind having a commit dedicated to the revert (with the prefix) on the git history. I think it is a possible solution too.
You can undo the latest commit with
git reset --soft HEAD^
too. But if you already pushed your changes a revert could be a better option.I use
git reset HEAD~1
to undo the last commit from a local branch and keep the modifications, this is a way for easily fix the changesThis is the safest option if you want to preserve the changes you made but simply need to fix the commit message or add more changes before committing again.
Use the following command:
git reset --soft HEAD~
This command:
Uses git reset to modify the HEAD, which points to the latest commit.
The --soft flag tells Git to keep the changes made in the last commit as unstaged changes in your working directory.
HEAD~ refers to the parent commit of the current HEAD, effectively undoing the last commit.
Join the online community of geometry dash lite! Millions of players share their creations, challenges, and experiences, fostering a passionate atmosphere.
Have you considered the fact that the code is pushed to a remote repository like Github. I am sorry but the explanations are not very clear for me.
That is bad. Do not do this.
Could you explain why?
Great information that you presented.Commits and changes.Great reach out on your message.
If it's in feature branch I just do hard reset and force push. Revert commit is best solution to revert merge pull request in main/master branch.
visual studio git tools you can select undo last commit
The last time when I tried to undo the commit I failed, but this guide gives me enough knowledge about it.
Thanks!
MBOX Converter
Works great! 👍😃