版本重置与文件删除

版本重置

git作为分布式版本控制系统,避免不了各版本之间的切换,就需要用到版本重置,也叫做版本回退。
在这里插入图片描述

现在三个区中都有test.html这个文件,并且是相同的。
软重置
仅仅重置分支区版本,和工作区、暂存区没有关系。现在把分支区的版本进行回退。
在这里插入图片描述
如果回退之后,觉得还是不回退的好,不想回退了。这时可以重置到指定版本。
首先查看操作记录,找到需要重置到哪一个版本。
在这里插入图片描述
混合重置
仅重置暂存区和分支区版本,使用–mixed选项,是git reset的默认选项,在使用时也可以不写–mixed。

git reset --mixed HEAD^

回退到上一个版本,或者回退到指定版本
注意:
HEAD:当前版本
HEAD^:前一个版本
HEAD^^:前两个版本
HEAD~n:前n个版本

  • 可用于撤销add到暂存区的文件git reset HEAD,意思就是说有一个文件已经添加到了暂存区,但是还没有提交到分支区,现在不想让这个文件存放在暂存区了,就可以用这个命令达到撤销添加的目的。
    适用条件:暂存区中有,分支区中没有。
  • 可用于撤销从暂存区删除的文件git reset HEAD 文件名,意思就是说有一个文件从暂存区中删除了,但是分支区中还存在,现在不想让这个文件从暂存区中删除,就可以用这个命令达到撤销删除的目的。
    适用条件:暂存区中没有,分支区中有。
    总的来说,就是使用混合重置,将暂存区和分支区重置回当前版本,根据分支区文件约束暂存区文件

硬重置
将工作区、暂存区、分支区这三个区的版本进行重置到指定版本。

git reset --hard 版本号

在这里插入图片描述

文件删除

想要进行文件删除,就要了解各分区之间的是否存在要删除的文件。
文件删除基础

  1. 向三区中都添加文件test.html,证明工作区、暂存区、分支区都有这个文件存在。

在这里插入图片描述

  1. 查看存放在暂存区中的文件:git ls-files
  2. 查看存放在暂存区+分支区中的文件:git ls-files --with-tree=HEAD
    (只要暂存区或者分支区任一区又文件都会显示出来)

在这里插入图片描述
没有单独查看分支区的命令,但可以通过git ls-files查看暂存区,再通过git diff --cached将暂存区和分支区进行比较,从而判断两者中的文件是否相同或者缺少什么文件。
删除文件

  1. 删除暂存区中的文件

在这里插入图片描述
可以看出现在的暂存区没有了test.html文件,那工作区和分支区中的文件有没有受到影响呢?
工作区就直接再本地仓库文件夹中就可以看见。
在这里插入图片描述

分支区通过命令git ls-files --with-tree=HEAD
在这里插入图片描述
从图中可以看出,暂存区没有了,但暂存区+分支区还有,这就说明分支区中还存在test.html这个文件。

  1. 删除工作区+暂存区文件
    在这里插入图片描述
    在这里插入图片描述
    可以看出工作区与暂存区中的hello.html文件都没有了。
  2. 删除分支区文件
    在这里插入图片描述
    这个操作就是可以直接通过命令删除暂存区的文件,然后将暂存区的文件全部提交到分支区,这样分支区就和暂存区保持一致,对于暂存区删除的文件分支区自然也没有了。
  3. 恢复删除的文件
    恢复工作区、暂存区、分支区中都删除的文件。
    实际上使用版本重置,将三个区的版本重置到还没有删除的状态,由于是三个区同时重置,所以使用的是硬重置。
    在这里插入图片描述
    可以看出暂存区的文件是完全恢复了的,但分支区的文件还是不能证明。
    在这里插入图片描述
    通过与暂存区的比较,可以判断出分支区的文件是和暂存区一样都是完全恢复了的。
    至于工作区在文件夹中就可直接看出。
    在这里插入图片描述

命令汇总

echo " " > [file]——将" “中的数据添加到文件中,并建立这个文件
echo " " >> [file]——向文件追加数据
git add [file] ——将文件添加到暂存区
git commit [file] -m " "——将暂存区文件提交到分支区,” "中可填写事务备注
git commit -m " " ——将暂存区文件全部提交
git reset --soft 版本号——软重置,针对分支区
git reset --mixed 版本号——混合重置,针对暂存区、分支区,–mixed可省略
git reset --hard 版本号——硬重置,针对三个区
git reset HEAD——撤销add到暂存区,适合暂存区有,分支区没有
git reset HEAD 文件名——撤销删除暂存区文件,适合暂存区没有,分支区有
git diff——对比工作区与暂存区文件差别
git diff -cached——对比暂存区与分支区文件差别
git ls-files——查看暂存区文件
git ls-files --with-tree=HEAD——查看暂存区+分支区文件
git reflog——查看操作版本记录

如有不对,还请指正。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

坚定你坚定的步伐

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值