【学了就忘】Git后悔药 — 34.版本回退操作(三)
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了【学了就忘】Git后悔药 — 34.版本回退操作(三)相关的知识,希望对你有一定的参考价值。
参考技术Agit 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操作 — 14.Git基本操作(一)
参考技术A要对现有的某个项目开始使用Git管理,只需到此项目所在的根目录,执行 git init 命令即可。
准备一个新的Git本地版本库:
说明:初始化Git仓库后,在当前目录下会出现一个名为 .git 的目录,所有Git需要的数据和资源都存放在这个目录中。
不过目前,仅仅是按照既有的结构框架,初始化好了Git仓库中所有的文件和目录,但我们还没有开始跟踪管理项目中的任何一个文件。
使用 git status 命令进行查看。
进入本地版本库查看工作区、暂存区中文件的状态。
1)创建文件后查看工作区、暂存区中文件的状态
我们在仓库目录中创建一个 readme.txt 文件后,在执行 git status 命令。
说明:
2)将工作区的文件添加到暂存区
执行 git add 命令,将 readme.txt 文件添加到暂存区。
3)再次查看工作区、暂存区状态
执行 git status 命令查看工作区、暂存区状态。
说明:
总结:
只要在 "Changes to be committed" 这行下面显示的文件,就说明是已暂存状态。
如果此时提交,那么该文件此时此刻的版本,将被留存在历史记录中。
在 git add 命令后面可以指明要跟踪的文件或目录路径。
如果是目录的话,就说明要递归跟踪该目录下的所有文件。(其实 git add 命令的潜台词就是把目标文件快照放入暂存区域,同时未曾跟踪过的文件标记为已跟踪。)
4)将文件从暂存区撤回到工作区
执行 git rm --cached 命令,将 readme.txt 文件从暂存区撤回到工作区。
并执行 git status 命令查看工作区、暂存区状态。
可以看到结果, readme.txt 文件又成为了一个未被Git追踪的文件。
以上是关于【学了就忘】Git后悔药 — 34.版本回退操作(三)的主要内容,如果未能解决你的问题,请参考以下文章