在原子中使用GIT进行本地开发

时间:2019-03-09 11:28:18

标签: git version-control localhost atom-editor git-revert

我已经对git进行了一些自学,因为它已集成在atom中,因此我可以轻松地还原所做的提交,而不必一直对我的代码进行备份(如果我正确地理解了GIT)。 /> 这些有关GIT的教程大多数都讨论了Github,然后您可以在其中发布您的master分支。但我想在本地开发所有内容,而不发布任何内容。因此,github不是一个选择。我只想使用GIT。
在Atom中,还原已完成提交的唯一方法是以github用户的身份执行PUSH和PULL工作流程。由于我没有使用atom登录到github,因此除了在目录中初始化git,“暂存”特定的文件/更改并提交它们之外,我无能为力。
我还从官方网页上下载了git并将其配置为cmd。我如何能够(通过atom)在本地还原提交?

2 个答案:

答案 0 :(得分:0)

  

通过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 <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 reset HEAD~ --hard

这将删除上一次提交。

答案 1 :(得分:0)

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

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

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

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

首先,您有 git-plusgit-control 之类的包,它们在 Atom 中实现了额外的 git 函数。 git-plus 不需要你打开终端,但它似乎需要对函数的工作原理和需要哪些参数有基本的了解。

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