linux git还原文件,如何在 Git 中重置、恢复,返回到以前的状态

linux git还原文件,如何在 Git 中重置、恢复,返回到以前的状态_第1张图片

用简洁而优雅的 Git 命令撤销仓库中的改变。

使用 Git 工作时其中一个鲜为人知(和没有意识到)的方面就是,如何轻松地返回到你以前的位置 —— 也就是说,在仓库中如何很容易地去撤销那怕是重大的变更。在本文中,我们将带你了解如何去重置、恢复和完全回到以前的状态,做到这些只需要几个简单而优雅的 Git 命令。

重置

我们从 Git 的 reset 命令开始。确实,你应该能够认为它就是一个 “回滚” —— 它将你本地环境返回到之前的提交。这里的 “本地环境” 一词,我们指的是你的本地仓库、暂存区以及工作目录。

先看一下图 1。在这里我们有一个在 Git 中表示一系列提交的示意图。在 Git 中一个分支简单来说就是一个命名的、指向一个特定的提交的可移动指针。在这里,我们的 master 分支是指向链中最新提交的一个指针。

linux git还原文件,如何在 Git 中重置、恢复,返回到以前的状态_第2张图片

图 1:有仓库、暂存区、和工作目录的本地环境

如果看一下我们的 master 分支是什么,可以看一下到目前为止我们产生的提交链。

$gitlog--oneline

b764644Filewiththree lines

7c709f0Filewithtwo lines

9ef9173Filewithone line

如果我们想回滚到前一个提交会发生什么呢?很简单 —— 我们只需要移动分支指针即可。Git 提供了为我们做这个动作的 reset 命令。例如,如果我们重置 master 为当前提交回退两个提交的位置,我们可以使用如下之一的方法:

$gitreset9ef9173

(使用一个绝对的提交 SHA1 值 9ef9173)

或:

$gitresetcurrent~2

(在 “current” 标签之前,使用一个相对值 -2)

图 2 展示了操作的结果。在这之后,如果我们在当前分支(master)上运行一个 git log 命令,我们将看到只有一个提交。

$gitlog--oneline

9ef9173Filewithone line

linux git还原文件,如何在 Git 中重置、恢复,返回到以前的状态_第3张图片

图 2:在 reset

你可能感兴趣的:(linux,git还原文件)