在 Git 中撤消上次提交

Abdul Jabbar 2023年1月30日 2022年4月22日
  1. 在 Git 中撤消上次提交(长版本)
  2. 在 Git 中撤消上次提交(短版)
在 Git 中撤消上次提交

在使用 Git 时,我们会遇到各种情况,我们故意想要撤消最后一次提交,因为我们想广泛地重新提交它,甚至由于我们过去犯的错误而将它完全删除。试想一下,如果 Git 有简单的 Undo Last Commit 选项,甚至是最流行的键盘快捷键,会有多少人会使用它。

我们有一个简单而强大的命令,与上面讨论的相同。该命令非常强大,因为它丢弃了最后一次提交并将 HEAD(当前分支)恢复到在该仓库中进行最后一次提交之前的状态。对于新的 Git 用户来说,这可能有点令人困惑,但是一旦我们掌握了它,它对我们的 Git 工具箱来说就会变得如此简单。

在 Git 中撤消上次提交(长版本)

首先,打开所需的终端,然后运行 ​​Git status。这将向我们展示我们的仓库的状态,包括我们所做的所有提交的列表。大多数时候,它说有三个提交。

第一个是对名为 master 的分支的提交,这是我们当前在仓库中的分支。第二个是对名为 Dev 的新分支的提交,最后,第三个是对另一个名为 NewDev 的分支的提交。

最后两个很有趣,因为它们是我们想要撤消的。我们想丢弃我们对 DevNewDev 所做的提交,并将 HEAD 恢复到提交之前的状态。让我们运行下面的命令,看看之后会发生什么:

$ git reset --hard 

HEAD 现在处于之前的状态。正如我们所看到的,新的 HEAD 指针现在回到了下一次提交。请注意,不再有标记为 Dev 的提交。此外,标记为 NewDev 的提交返回到下一个提交

在 Git 中撤消上次提交(短版)

如果我们想撤消最后一次提交,请确保我们位于要撤消提交的分支上,然后运行 ​​git reset –hard。如果我们想撤消当前分支上的最后一次提交,请确保我们在 master 上,然后运行以下命令。

git reset --hard origin/master.  

只有当我们完全确定不再需要这些更改时,才能应用上述程序。但反过来说,如果我们需要将这些更改作为工作副本中未提交的本地更改,那么对于这种情况,reset 命令是我们解决此问题的方法:

$ git reset --soft HEAD~1

reset 会将我们当前的 HEAD 分支撤消到特定点。在我们上面提到的示例中,我们命令返回到最近撤消之前的最后一次提交 - 有利地创建我们最后一次未完成的提交。 --soft 标志确保恢复未完成的修订中的更改。

Author: Abdul Jabbar
Abdul Jabbar avatar Abdul Jabbar avatar

Abdul is a software engineer with an architect background and a passion for full-stack web development with eight years of professional experience in analysis, design, development, implementation, performance tuning, and implementation of business applications.

LinkedIn

相关文章 - Git Commit