在 atom 中使用 GIT 进行本地开发

Using GIT in atom for local development

我自学了一些关于 git 的知识,因为它集成在 atom 中,因此我可以轻松地恢复我所做的提交,而不必一直备份我的代码(如果我理解GIT 正确)。
大多数关于 GIT 的教程也谈到 Github,然后您可以在其中发布您的 master 分支。但我想在本地开发一切,而不是发布任何东西。因此,github 不是一个选项。我只想使用 GIT.
在 Atom 中,还原已完成提交的唯一方法是以 github 用户身份遵循 PUSH 和 PULL 工作流。由于我没有在 atom 中登录 github,我只能在目录中初始化 git,"stage" 特定 files/changes 并提交它们.
我也从官网下载了git,在cmd里配置好了。我怎样才能在本地恢复提交(通过 atom)?

via atom or a command-line-interface

我将向您展示两个命令行界面选项。

让我们从一个新的存储库开始。

$ 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)"

使用'revert'

git revert 命令可以"cancel out" 为您提交。它通过应用一个新的提交来实现,好吧,恢复你的更改。

简直运行

$ git revert HEAD

您现在可以检查 myfile 内容并看到 "bar" 字符串消失了。你也可以 运行 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

使用'reset'(小心!)

git 还提供了真正 "erase" 提交的选项,而不是创建一个取消先前提交的新提交。 运行ning git reset 时要小心,因为当你不小心向它提供错误的参数时,你真的可能会丢失部分工作。摘自:https://ohshitgit.com/#accidental-commit-master

$ git reset HEAD~ --hard

这将清除最后一次提交。

这里的挑战之一是在基本功能之外 git 几乎总是需要使用命令行。我个人不太介意,因为它会迫使您更多地了解每个函数的具体作用,并且如果滥用多个 git 函数,可能会对存储库造成严重破坏。长话短说,如果您要广泛使用 git,您可能希望尽早熟悉命令行。

更直接地解决您的问题: 当撤消一个(或多个)提交时,典型的解决方案是使用 git revertgit reset 到 overwrite/rollback 提交。 (有关这两个命令的更多信息,请参阅 Matt 的回答)

但是,查看评论,您似乎正在寻找一种内置于 Atom 中的方法来执行此操作。幸运的是,github 包中确实包含一个 undo 按钮。它位于 git 面板右下角的提交历史中。从使用一次或两次开始,它看起来像是重置为之前的提交,同时还保留并暂存“未完成”提交的更改。这似乎是你想要的。但是要小心,如果在你已经推送到远程的提交中使用它。您可能需要合并任何进一步的更改,并且强烈建议不要重置远程提交(尽管可能)。

如果您要问的更笼统(git revert/git remove 之外),那么您还有几个额外的选择:

首先,您有像 git-plus and git-control 这样的包,它们在 Atom 中实现了额外的 git 功能。 git-plus 不要求您打开终端,但似乎需要对函数的工作原理和需要的参数有基本的了解。

此外,如果您决定要开始使用命令行,可以使用在 Atom 中实现终端的软件包。 This 是我用的那个。这是我所知道的能够直接从 Atom 内部使用 git 到其容量范围的唯一方法。