Git使用五:回到过去

Posted zhongyehai

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Git使用五:回到过去相关的知识,希望对你有一定的参考价值。

 

reset:将仓库里面的内容恢复回暂存区,类似于从仓库里检出文件到暂存区
checkout:将暂存区的文件恢复回工作区,即,把暂存区的文件检出到工作区

技术图片

 

下面是之前三次提交的内容

技术图片

技术图片

 三个区域的文件状态:

技术图片

 

执行命令:git reset HEAD~

这里~代表上一个版本,这个时候,就会回到第二次提交的状态,而仓库和暂存区的文件也会发生变化

~~代表上上个版本,以此类推,也可以这样表示~10(往回退10个版本)

技术图片

这个时候,git检测到工作区的文件比暂存区的文件内容更新,所以会报没有被暂存的提示

 技术图片

 

再次执行git log,只显示前面两个提交记录了

技术图片

 

 

reset命令的选项

git reset --mixed HEAD~(默认)
移动HEAD的指向,将其指向上一个快照
将HEAD移动后指向的快照回滚到暂存区域

git reset --soft HEAD~
移动HEAD的指向,将其指向上一个快照,不会修改暂存区的内容(撤销上一次的提交)

git reset --hard HEAD~
移动HEAD的指向,将其指向上一个快照
将HEAD移动后指向的快照回滚到暂存区域
将回滚后暂存区的文件还原到工作目录

 

执行hard命令前

技术图片

执行后

技术图片

更新历史也只剩一个了

技术图片

文件状态

技术图片

 

总结:
1.移动 HEAD 的指向(--soft)
2.将快照回滚到暂存区域([--mixed],默认)
3.将暂存区域还原到工作目录(--hard)
4.回滚到指定快照:git reset bfde835f7c9ef846

 技术图片

5.回滚个别文件(不会改变head指针):git reset 版本快照 文件名/路径
6.reset不仅可以回滚,还可以往前滚:git reset 版本快照的ID号

 技术图片

 

以上是关于Git使用五:回到过去的主要内容,如果未能解决你的问题,请参考以下文章

我与小娜(01):回到过去,探索未知

python 回到过去

一款单机游戏 主角安装了一只可以 控制物品回到过去、举起操作物品 、和放能量球的机械手。、

图解4种git合并分支方法

程序猿回到过去:红花会与布隆过滤器

git