git版本回退和删除与找回

开始之前

为了方便演示,在test目录下新建几个文件
创建一个 readme.txt 内容为:1111111111111
使用 git add test.txt添加到暂存区
使用git commit --message="the first change"提交到仓库
然后再文件结尾添加222222222222
再add添加到暂存区,然后使用commit保存
以同样的方式再文末加入33333333333333,然后上传提交

查看历史

全部显示:git log
只显示一行:git log --pretty=oneline 

git版本回退和删除与找回_第1张图片

退回到上一版本

git reset –-hard HEAD^

如果要回退到上上个版本只需把HEAD^ 改成 HEAD^^ 以此类推
如果要退回到n个版本就用

git reset  –-hard HEAD~100

git版本回退和删除与找回_第2张图片
可以通过git reflog,以更简单的方式显示历史
git版本回退和删除与找回_第3张图片
然后通过指定前面7个十六进制数来快速指定恢复到哪一个版本

git reset --hard 版本号

git版本回退和删除与找回_第4张图片

撤销修改

给test文件新增444444444444这一行
在这里插入图片描述
第一:如果我知道要删掉那些内容的话,直接手动更改去掉那些需要的文件,然后add添加到暂存区,最后commit掉。
第二:我可以按以前的方法直接恢复到上一个版本。使用 git reset --hard HEAD^
第三:使用git checkout – 丢弃工作区的修改,意思是把这个文件在工作区做的修改全部撤销,其中有两种情况:

  1. test.txt修改后,还没有放到暂存区,使用 撤销修改就回到和版本库一模一样的状态。
  2. 另外一种是test.txt已经放入暂存区了,接着又作了修改,撤销修改就回到添加暂存区后的状态。
    git版本回退和删除与找回_第5张图片
    git版本回退和删除与找回_第6张图片
    注意:命令git checkout — readme.txt 中的 — 很重要,如果没有 — 的话,那么命令变成创建分支了。

删除文件

在这个目录下创建一个b.txt文件,并提交,然后删掉b.txt,查看此时版本库的状态

//创建文件
touch b.txt
//添加文件到暂存区
git add b.txt
//从版本库中找回文件
 git checkout -- b.txt
//在删除本地文件的情况下,强制提交文件
git commit -a --message="add b.txt"
//删除本地文件
rm b.txt
//查看状态
git status

git版本回退和删除与找回_第7张图片

若此时直接commit,就会把版本库中的b.txt文件也删除掉
若git checkout – b.txt 就会恢复到本地来
git版本回退和删除与找回_第8张图片

你可能感兴趣的:(Git)