最近发生了一起git事故,幸亏自己把code找回来了,要不然那个需求的逻辑我又得写一天,还贼复杂,过程如下:
昨天写了一天的code没有提交,今天需要帮同事看一个问题,用的是他的分支,于是乎我把我本地分支没有输入git add .操作(一般都会执行这一步,不知道为啥这次忽略了),直接git commit之后,执行了git push,然后切换同事的分支去搞事情去了,结果完事儿切回到自己分支的时候发现昨天自己的代码全无了,感觉天塌了,想想有没有办法找回,我又去gitlab上看了一下,发现之前git push上去的代码只有一下部分,完事儿去就去尝试方案,最后发现了一个新大陆,方法如下:
打开项目所在文件夹下的.git文件夹,里面有一个objects的文件夹,每次commit都会在里面生成一个文件夹,如下图:
文件夹的名称是取的每次commit的hash值的前两位,我是根据我提交gitlab时候的时间点,找到了这个文件夹下的时间点跟提交gitlab时间点相近的目录,点击进入到文件夹下,里面有多个文件,如下图:
在此处直接右键Git Bash Here(需要安装git),打开git操作面板,然后输入git show 目录名+具体的文件名,就可以看到具体的commit记录
然后本地执行git reset --hard commit值就可以找到之前的code了,我的天,终于没让我再重新写一遍吐血的逻辑代码,仅此记录做分享
标签:code,git,找回,gitlab,文件夹,本地,commit From: https://www.cnblogs.com/shenwh/p/17559300.html