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
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)