如果说在工作中需要回退到之前的版本,那么就需要以下操作

  • 查看每一次提交的日志信息和commit id
git reflog

Git系列(三):Git版本管理
说明:当前版本为HEAD{0},当前本地仓库有一个test.txt文件,在上一次版本中,本地仓库什么都没有。黄色的一串id为commit id,用来标识不同的版本

  • 回退到上一个版本
git reset --hard HEAD^

Git系列(三):Git版本管理
说明:从这里可以很明显的看出已经回退到上一个版本,HEAD代表指针,用于指向当前版本,^代表前一个版本,^^表示前两个版本

  • 回退到前几个版本
git reset --hard HEAD~5

说明:将5改一下就OK了

  • 回退到指定commit id的版本
git reset --hard cae5e47

Git系列(三):Git版本管理
说明:cae5e47为第一次提交的commit id,这个版本中存在一个test.txt文件

  • 将暂存区的暂存的文件返回到工作区

先修改test.txt文件
Git系列(三):Git版本管理
然后添加到暂存区

git add test.txt

Git系列(三):Git版本管理
将暂存区的暂存的文件返回到工作区

git reset HEAD test.txt

Git系列(三):Git版本管理

  • 撤销文件在工作区的改动
    在有的IDE中存在history的功能,可以从history中选择历史版本,Git也提供了撤销的功能,将文件恢复到HEAD指针指向的版本仓库的状态
    Git系列(三):Git版本管理
    说明:现在test.txt文件被修改了,新增了一行bbbbbbbbbbbbb,从git status中看出现在文件还在工作区
    Git系列(三):Git版本管理
    说明:使用 git checkout test.txt命令撤销文件的修改,可以看出之前新增的一行bbbbbbbbbbbbb已经被撤销了,git status中test.txt也没有修改的状态,在git diff中也没有修改的记录

相关文章: