git:文件未先add直接commit,出现文件报错后,新增文件丢失问题,已解决
问题解析
在使用git时,文件没有add,直接提交commit,报错后导致新增的文件丢失;出现这个问题时,新增的文件其实在commit时已经保存到.git下的object文件夹下,需要我们一个一个去拉出来解析回来。
批量解析object下文件
- 在git bash中执行find .git/objects -type f | xargs ls -lt | sed 30q > file.txt
然后多光标操作,每一行只留下id 及其父级名,去掉/
(保留上面图片圈中部分,去掉其中的/
)。 - 然后创建脚本huild.sh,并执行:
执行:sh build.sh - 最后,手动还原,点进去每一个文件,有些可能是一些空文件,有一些正好是你丢失的文件,需要自己手动加回到正确的位置。
参考地址
https://www.jianshu.com/p/311c5e33c705
https://blog.csdn.net/men_ma/article/details/121095410