如果你的文件已提交到了本地仓库,然后后悔了,那恭喜你,只能回退版本号了

1、情况一,我提交到了仓库,想回退,但工作区的对此版本的修改还要保留

此处有一个小坑

首先,我原来的内容是这样的

我现在修改 ,加了一行5

 然后我一顿提交,我的新版本生成了

 现在我后悔了,想从本地仓库把修改撤回

你可能遇到这种写法

 会报一个more的错 

这是因为cmd控制台中换行符默认是^,而不是\ ,所以它的more?的意思是问你下一行是否需要再输入,而^ 符号就被当做换行符而被git命令忽略掉了。

那如何修改呢 ,我们加个引号

 git reset "HEAD^"

现在我们看结果:增加一行5的版本没有了,但工作区对增加5的这行修改还在

 

 

 那如果用 git reset --hard ,那肯定工作区的修改也没了

 git reset --hard "HEAD^"

 

注意的是,--hard在本地工作区回退,是相对你上次提交到本地仓库的回退

比如说,我增加一行5,提交到本地仓库,则在版本库中生成了一个版本号”36d93f9“

 

 我再增加一行6,提交到暂存区

 我再增加一行7,提交到暂存区

 然后我一起提交到本地仓库,生成版本号 7a71699

 好,我现在回退,看6和7都没了

 所以 -- hard 工作区的回退是两个版本差异的回退,跟版本之间你在暂存区又干了啥没有关系,不会先回退到6,再回退到7,

二、想回退到某个版本

 git reset  版本号

 git reset  --hard 版本号

两个的区别就不多说了,不行看上一篇文章

https://blog.csdn.net/weixin_43258703/article/details/121581354

 

 

Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐