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 文件的内容已经完全恢复。
1、 git reset HEAD^ :回退版本,一个^表示一个版本,可以多个^,上上个版本就是 git reset HEAD^^
2、 git reset HEAD~100 回退当然往上100个版本
3、 git reset HEAD filename :回退文件,将文件从暂存区回退到工作区 也可以 git reset filename
一. 相关git命令
1.git branch:查看当前分支,如果在后面加-a则表示查看所有分支。
2.git log:查看提交历史,在commit id这一项中可以看到提交的历史版本id。
3.git reflog:查看每一次命令的记录
4.git reset --soft:回退到某个版本,只回退了commit的信息。
5.git reset --mixed:为默认方式,不带任何参数的git reset,即时这种方式,它回退到某个版本,只保留源码,回退commit和index信息。
6.git reset --hard:彻底回退到某个版本,本地的源码也会变为上一个版本的内容,撤销的commit中所包含的更改被冲掉。
二:步骤
1.回滚到指定版本
首先进入项目根目录下,使用git log 命令,找到需要返回的commit id 号,使用git reset --hard 后跟你需要的commit id号,这样你就回到了指定的版本,注意git reset --hard与git reset --soft的区别:
git reset –-soft:回退到某个版本,只回退了commit的信息,不会恢复到index file一级。通常使用在当你git commit -m "注释"提交了你修改的内容,但内容有点问题想撤销,又还要提交,就使用soft,相当于软着路;
git reset -–hard:彻底回退到某个版本,本地的源码也会变为上一个版本的内容,撤销的commit中所包含的更改被冲掉,相当于硬着路,回滚最彻底。
2.返回到最新版本
当你发现需要回滚到最新版本时,可以采用以下指今步骤
git log:查看历史提交
git reflog:查看每一次命令记录
通过git reflog命令查看到之后,我们再利用 git reset 来返回到相应的版本即可,HEAD前面的一串字符为我们简写的ID,所以最后输入
git reset --hard ca936c3即回滚到了最新的版本号了
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)