【学了就忘】Git后悔药 — 34.版本回退 *** 作(三)

【学了就忘】Git后悔药 — 34.版本回退 *** 作(三),第1张

git reset --hardcommit-id 命令:回退到指定版本。(hard:强硬,严格的回退)

该命令不仅移动了分支中HEAD指针的位置,还将工作区和暂存区中数据竖晌也回退到了指定的版本。

(提示:该命令慎用。)

示例开始:

首先在版本库中的 readme.txt 文件中添加一行内容,并提交该内容。我们的目的就是要再回退到该版本。

1)查看本地版本库日志

2)向 readme.txt 文件中新增一行数据,并提交到本地版本库

3)现在比对工作区与暂存区、暂存区与本地版本库的差异

我们可以看到此时,工作区、暂存区与本地版本库中的 readme.txt 文件状态无差异。

4)开始回退 *** 作,退回到V3版本

使用 git reset --hard HEAD^ 命令,退回到前一个版本。

说明:

HEAD is now at 529ad74 第3次提交,新增内容:readme.txt file v3

意思:HEAD现在位于commit-id为 529ad74 的提交,提交说明为: 第3次提交,新增内容:readme.txt file v3 。

5)回退后,对比工作区、暂存区与本地库中版本中文件的差异

回退后,我们再次对比了工作区、暂存区与本地库中版本中文件的差异:没有内容差异,完全一样。

说明:工作区、暂存区和本地库中的内容,都回退渣谨到了之前的版本。(重要)

6)查看本地版本库的提交日志信息

从上我们可以看到:(重点)

7)恢复到回退前版本

上面说了,使用 git reset --hard 命令回退,做了三个 *** 作:

我们现在来查看一下工作目录中的文件状态。

可以看到工作目余梁锋录中是非常干净的。

所以若要恢复到回退之前的版本,只能使用 git reset --hard 命令回退。

我们查看到, readme.txt 文件的内容已经完全恢复。

git reset --mixed commit-id 命令:回退到指定版本。(soft:混合的,即:中等回退。)

该命令不仅修改了分支中HEAD指针的位置,还将暂存区中数据也回退到了指定版本。

但是工作区中的版本仍是回退前的版本。

--mixed 参数是 git reset 命令的默认选项。

示例开始:

首先在版本库中的 readme.txt 文件中添加一行内容,并提交该内容。我们的目的就是要再回退到该版本。

1)查看本地版本库日志

2)向 readme.txt 文件中新增一行数据,并提交到本地版本库

3)现在比对工作区与暂存区、暂存区与本地版本库的差异

我们可以看到此时,工作区、暂存区兄镇与本地版本库中的 readme.txt 文件状态无差异。

4)开始回退 *** 作,退回到V3版本

使用 git reset --mixed HEAD^ 命令,退回到前一个版本。

说明:

5)回退后,对比工作区、暂存区与本地库中版本中文件的差异

回退后,我做汪们再次对比了工作区、暂存区与本地库中版本中文件的差异:

说明:工作区中的内容没有回退,但是暂存区和本地库中的内容回退到了之前的版本。(重要)

6)查看本地版本库的提交日志信息

从上我们可以看到:(重点)

7)恢复到回退前版本

上面说了,使用 git reset --mixed 命令回退,做了两个 *** 作

而工作区内容不回退。

我们现在来查看一下工作目录中的文件状态羡胡粗。

我们可以看到 readme.txt 文件是修改未暂存状态。

所以若要恢复到回退之前的版本,也是两种方式:

第一种常规 *** 作,这里就不演示了。下面演示一下第二种方式:

我们查看到, readme.txt 文件的内容已经完全恢复。

回退命档兆迟令:

git reset --hard HEAD~3 回退到前3次提交之前,以此类推,回退到n次行李提交之前

$ git reset --hard commit_id 退猜知到/进到 指定commit的id

强推到远程:

$ git push origin HEAD --force


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/tougao/8228009.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-14
下一篇 2023-04-14

发表评论

登录后才能评论

评论列表(0条)

保存