我已经对git进行了一些自学,因为它集成在原子中,因此我可以轻松地恢复我所做的提交而无需一直备份我的代码(如果我正确理解GIT)。 大多数关于GIT的教程也谈论了Github,然后你可以在那里发布你的主分支。但我想在本地开发所有东西,而不是发布任何东西。因此,github不是一个选项。我只想使用GIT。 在Atom中,恢复提交的唯一方法是遵循PUSH和PULL工作流作为github用户。由于我没有登录到原子中的github,我无法做任何事情,只需在目录中初始化git,“暂存”特定文件/更改并提交它们。 我还从官方网页下载了git,并在cmd中进行了配置。我如何能够在本地恢复提交(通过原子)?
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
。
$ 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 HEAD
您现在可以检查myfile
内容并看到“bar”字符串消失了。你也可以运行git log
,看起来应该是这样的
Author: Alan Turing <[email protected]>
Date: Sat Mar 9 15:28:51 2019 +0000
Revert "bar content"
This reverts commit bc483fc6fd069c70f6822a8b840f74ced64d32c8.
commit bc483fc6fd069c70f6822a8b840f74ced64d32c8
Author: Alan Turing <[email protected]>
Date: Sat Mar 9 15:28:35 2019 +0000
bar content
commit f6450431be631220210eb83c152d907058a6337d
Author: Alan Turing <[email protected]>
Date: Sat Mar 9 15:27:23 2019 +0000
foo content
git
还提供了真正“擦除”提交的选项,而不是创建取消先前提交的新提交。在运行git reset
时要小心,因为当你不小心为它提供错误的参数时,你可以真正地丢失部分工作。取自:https://ohshitgit.com/#accidental-commit-master
$ git reset HEAD~ --hard
这将删除最后一次提交。