在 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 revert
或 git 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 到其容量范围的唯一方法。
我自学了一些关于 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 revert
或 git 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 到其容量范围的唯一方法。