一、使用了git add操作,但是回滚后找不到的
操作:
1.进入到项目所在的有.git目录下,使用git bash here进入操作界面
2.然后使用命令:find .git/objects -type f | xargs ls -lt | sed 60q
注意:这里的60是最近60次git add的文件,可以换成你想要的次数

3.回车后出现的文件是下面的这种形式,我们就需要去找了

4.使用命令: git cat-file -p ID > recover.txt
注意:这里的ID是上面的7a加上它后面斜杠后的一串内容,例如:
git cat-file -p 7a3bbf4894d95265f4fc901146274e94cac49b0d > recover.txt
回车后就会在你的文件目录中出现一个recover.txt文件,点进去查看是不是你丢失的代码就可以了。
二、没有使用git add的,回滚后找不到的
注意:这种方案理应是无力回天,除非你有代码的war包,可以进行反编译去找到代码
步骤:
1.下载反编译工具,我这里使用的是在官网下载的jd-gui-windows-1.6.6
2.将war包改成zip,然后解压
3.在WEB-INF下找到解压后的class文件
4.将class文件打开到jd-gui工具中,就可以找到了👌
文章介绍了两种情况下的代码恢复方法。一种是使用Git命令行工具,通过`gitadd`操作后想找回丢失的代码,可以通过查找最近的git对象并使用`gitcat-file`命令恢复。另一种是没有使用`gitadd`的情况,如果只有war包,可以借助反编译工具jd-gui来尝试恢复代码。
647





