通过提交 ID 恢复 Git 仓库
本文将讨论基于提交 ID 还原 Git 仓库。我们可能需要回到较旧的提交以检查其状态或删除之后的提交。
让我们讨论这两种情况。
临时切换到 Git 提交
我们使用 git checkout
命令临时切换到较旧的提交,同时提及提交 ID。
$ git checkout <Commit ID>
此命令将分离我们的 repo 的 HEAD
(我们没有在分支上签出)。在这种状态下,我们无法提交。
如下所示,我们必须根据提交创建一个新的分支。
$ git switch -c <new-branch-name>
我们可以结合上面的命令来做同样的事情,如下所示。
$ git checkout -b <new-branch-name> <Commit ID>
通过提交 ID 恢复 Git 仓库
我们使用带有 --hard
标志的 git reset
命令,同时传递我们想要回滚到的提交 ID。运行以下命令。
$ git reset --hard <Commit ID>
运行此命令将删除我们最近的所有提交,直到提到的提交。该命令还将删除索引中任何未提交的更改。
如果要保留更改,请执行以下操作:
$ git stash
$ git reset --hard <Commit ID>
$ git stash pop
如果要更新远程仓库,请使用下面的 git push
命令。
$ git push -f
请小心使用此命令,因为它将根据你的本地仓库覆盖远程仓库。让我们看一个例子。
在下面的示例中,我们将尝试根据提交 id 恢复我们的 git repo Delftscopetech
。让我们运行 git log
命令来列出我们 repo 中的所有提交。
$ git log --oneline
如果我们想回到 Fourth Update
,我们会怎么做呢?
我们在下面的上下文中运行 git reset
命令。
$ git reset --hard df90895
HEAD is now at df90895 Fourth Update
输出显示我们的 HEAD
现在处于 Fourth Update
。我们可以运行 git push
命令将更改推送到我们的远程仓库。
如果要撤消重置,请按照此操作。
首先,我们运行 git reflog
命令来查看我们 repo 中的所有参考更新。
$ git reflog
你的输出看起来很相似。我们可以在 HEAD@{0}
看到我们的重置。
要返回,我们运行 git reset
命令,如下所示。
$ git reset HEAD@{1}
现在让我们检查一下我们的提交历史。
$ git log --oneline
我们的 HEAD
又回到了第六次更新
。
简而言之,根据提交 ID 恢复你的 Git 仓库非常容易。如果你想暂时切换到提交,请使用 git checkout
命令。
要恢复到特定的提交,请使用 git reset --hard
命令并指明提交哈希。
相关文章
如何在 Windows 系统中卸载 git
发布时间:2023/04/09 浏览次数:223 分类:Git
-
在这篇简短的文章中,我们将学习如何卸载 Git,以及如何在从个人计算机的目录中卸载 Git 后删除这些文件。
Git 如何重命名本地分支
发布时间:2023/04/09 浏览次数:64 分类:Git
-
大多数情况下,重命名分支机构是由于上述情况。 因此,在本教程中,我们将学习使用下面提到的技术更改本地 Git 分支的名称。
重命名 Git 存储库中的文件和目录
发布时间:2023/04/09 浏览次数:102 分类:Git
-
在本文中,我们将讨论 git 中的重命名过程。 我们使用 Git Rename 来更改工作目录中文件和文件夹的名称。
在 Git 中取消初始化存储库
发布时间:2023/04/09 浏览次数:187 分类:Git
-
本本文介绍如何通过 Git 命令行取消初始化 Git 存储库。git init 命令开发一个新的空置 Git 存储库。 它还用于重新初始化已经存在的 Git 存储库。
Git 仓库名称该如何命名
发布时间:2023/04/09 浏览次数:208 分类:Git
-
使用 Git 时,选择一个简洁且最新的存储库名称是一项艰巨的任务。本教程介绍了如何以独特的方式命名 Git 存储库。
配置 Git 以忽略文件模式更改
发布时间:2023/04/09 浏览次数:67 分类:Git
-
本文讨论配置 Git 以忽略文件更改 chmod 所需的步骤。 如果您更改 Git 正在跟踪的文件的权限,系统将在该文件中注册更改。
在 Git 中暂存已删除的文件
发布时间:2023/04/09 浏览次数:93 分类:Git
-
本文讨论了在 Git 中暂存已删除文件的必要步骤。我们知道 rm 命令可以删除一个文件,而无需将其从工作目录中移除。 那么,我们如何暂存已删除的文件以进行提交呢?
在 Git 中显示冲突文件
发布时间:2023/04/09 浏览次数:139 分类:Git
-
本文讨论在 Git 中列出冲突文件的最简单和最干净的方法。 我们可以使用 git status 命令,但这很麻烦,尤其是当我们有大量不冲突的文件时。