开发者

Rollback to last git commit

开发者 https://www.devze.com 2023-02-09 17:35 出处:网络
I just did a git commit -m \"blah\" then I added some files, how do I rollback and remove what is in my current files that have not yet开发者_开发知识库 been added/committed?Caveat Emptor - Destru

I just did a

git commit -m "blah"

then I added some files, how do I rollback and remove what is in my current files that have not yet开发者_开发知识库 been added/committed?


Caveat Emptor - Destructive commands ahead.

Mitigation - git reflog can save you if you need it.


1) UNDO local file changes and KEEP your last commit

git reset --hard

2) UNDO local file changes and REMOVE your last commit

git reset --hard HEAD^

3) KEEP local file changes and REMOVE your last commit

git reset --soft HEAD^


If you want to remove newly added contents and files which are already staged (so added to the index) then you use:

git reset --hard

If you want to remove also your latest commit (is the one with the message "blah") then better to use:

git reset --hard HEAD^

To remove the untracked files (so new files not yet added to the index) and folders use:

git clean --force -d


If you want to just uncommit the last commit use this:

git reset HEAD~

work like charm for me.


git reset --hard will force the working directory back to the last commit and delete new/changed files.


An easy foolproof way to UNDO local file changes since the last commit is to place them in a new branch:

git branch changes
git checkout changes
git add .
git commit

This leaves the changes in the new branch. Return to the original branch to find it back to the last commit:

git checkout master

The new branch is a good place to practice different ways to revert changes without risk of messing up the original branch.


You can revert a commit using git revert HEAD^ for reverting to the next-to-last commit. You can also specify the commit to revert using the id instead of HEAD^

0

精彩评论

暂无评论...
验证码 换一张
取 消

关注公众号