[Github/VS]记一次“重置并删除更改 --hard”代码丢失后恢复的过程

背景:

早上来公司,鉴于昨晚上提交不上,以为是Github网络问题,想着先把昨天的代码提交一下,毕竟是未来好几天的工作量,万一丢了可是白提前干了,好家伙,墨菲定律果然不是盖的,怕什么来什么,这里记录一下问题和解决过程:

环境:

IDE:Visual Studio 2022 @17.5.5

发生时间:2023/6/21 9:00

 发生过程:

  1. 可能太久没提交了,第一次暂存时搞了800多个文件,哎。看样子还是不能懒啊,虽然就我一个人,一个主机堪比服务器,还是要常备份!
  2. 第一个提交死活提交不上,也不报错,就进度条一点点跑完,然后恢复状态,我昨天兴高采烈的写完未来几天的工作量,把代码暂存起来,点了提交还是提交不上,我以为Github的网络问题又出现了,正赶着下班就走了,今天来了想着先保存,诶,还是提交不上,打开浏览器开Github并没什么问题。
  3. 想撤销更改,于是就直接在Visual Studio的Git记录上右键,发现有个重置,重置里面有两个选项:(1)重置并保留更改(混合)。(2)重置并删除更改(--hard)。
  4. 一开始点的是重置并保留更改,但是点了过了一会什么也没有发生,因为当时我怀疑删除更改会删除我的代码,所以没敢点,去网上搜索了一下,发现有个帖子说这个是需要点那个重置并删除的,虽然我还是怀疑,我承认,我有的成分。
  5. 随着进度完成,项目顺利的完成了,正当我准备欢天喜地的写代码时,突然发现新增的部分后面一个[已删除]
  6. 当时我的内心万头草泥马奔腾而过,卧槽!我的代码呢?卧槽!删了不止一个!卧槽,这几乎回到了一个月以前!
  7. 最后我尝试了非常多的帖子方法,都没有效果,就在我崩溃的时候,找到了一个方法,尝试后顺利找回代码,这里我列一下方法。

初次提交错误原因:

由于Visual Studio并没有给我报什么错,事情解决之后我用gitBash重新上传了一下,发现是因为文件大于了Github的上传限制(一定要及时备份,非必要不要上传超大文件)

 条件:

这里提一嘴另外两种条件,因为我是在VS里面操作,提交不上才删除的,所以其实我的情况是已经add并且Commit过了,这两个条件是我在寻找解决方案时发现的,这里顺便说一下:

1、没有git add 并且 没有git commit

请重写代码,趁着记忆还在,被删除的代码找不到了,牢记不要瞎搞git指令!

2、git add过但没有Commit 

在根目录中,Git Bash执行命令:

git fsck --lost-found

然后找到你的工程目录,在目录中打开路径:

.git/lost-found/other/

(如果没有.git目录,需要在文件夹选项中显示隐藏的项目,以我Win11举例)

 3、add并且commit过(本篇核心解决方案)

这是最理想的解决方案,我遇到的是这个情况,实测完美解决问题。

首先,项目根目录打开git -bash,输入

git reflog

回车执行,然后会显示该项目最近的Commit日志,如下图:

 此处留意希望恢复操作的位置在第几个HEAD,比如这个我希望恢复到第四个,那么我就输入:

git reset --hard HEAD@{4}

执行后即可恢复

事件总结:

  1. 千万不要随意尝试网上关于指令部分的代码,尤其是自己搞不懂的时候不要猜,网上很多是靠GPT或是复制回答问题的人,或者有些大佬虽然遇到的问题一致,但是环境并不相同。

  2. 常备份!常备份!常备份!

  3. 非会员使用Github或者gitee等各种非私有Git存储时需要确认上传内容是否为纯代码,是否掺杂其他大文件,是否超过Git托管服务器的限制。 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值