via atom或命令行界面
我将向您展示两个命令行界面选项。
让我们从一个新的存储库开始。
$ mkdir how_to_undo_stuff_in_git $ cd how_to_undo_stuff_in_git $ git init # Initialize git (only needed once)
首先,我们将创建一个文件, myfile ,内容 foo 。
myfile
foo
$ echo foo > myfile $ git add myfile $ git commit -m "Add foo content"
接下来,我们将应用我们要撤消的第二个提交。
$ echo bar >> myfile $ git add bar $ git commit -m "Add bar content (bad commit)"
该 git revert 命令可以“取消”为您提交。它是通过应用新的提交来完成的,该提交可以恢复您的更改。
git revert
简单地跑
$ git revert HEAD
你现在可以检查了 myfile 内容并看到“bar”字符串消失了。你也可以跑 git log 它看起来应该是这样的
git log
Author: Alan Turing <alan@hotmail.com> Date: Sat Mar 9 15:28:51 2019 +0000 Revert "bar content" This reverts commit bc483fc6fd069c70f6822a8b840f74ced64d32c8. commit bc483fc6fd069c70f6822a8b840f74ced64d32c8 Author: Alan Turing <alan@hotmail.com> Date: Sat Mar 9 15:28:35 2019 +0000 bar content commit f6450431be631220210eb83c152d907058a6337d Author: Alan Turing <alan@hotmail.com> Date: Sat Mar 9 15:27:23 2019 +0000 foo content
git 还提供了真正“擦除”提交的选项,而不是创建取消先前提交的新提交。跑步时要小心 git reset 因为当你不小心为它提供错误的论据时,你真的可以放松你的部分工作。取自: https://ohshitgit.com/#accidental-commit-master
git
git reset
$ git reset HEAD~ --hard
这将删除最后一次提交。