Git 恢复暂存区文件

git 在执行add命令后, 会将改动存入暂存区, 如果没有commit就直接回退版本, 会导致暂存区的数据丢失.

但是可以通过以下方式找回:

    1. 列出最近的60个提交的文件

find .git/objects -type f | xargs ls -lt | sed 60q
xiao4er@ubuntu:~/work/mirror-userprofile$ find .git/objects -type f | xargs ls -lt | sed 60q

-r--r--r-- 1 xiao4er xiao4er      848 Jun 14 11:40 .git/objects/e2/a9e0a491c21b06f029fdbe96a8f40934de6ff9
-r--r--r-- 1 xiao4er xiao4er      848 Jun 14 10:30 .git/objects/b3/222404750cbc25867da455d3e4a85f3b451d66
-r--r--r-- 1 xiao4er xiao4er      251 Jun 14 10:20 .git/objects/27/65e05b70f6d0630c41a278996d6b977c32d630
-r--r--r-- 1 xiao4er xiao4er     1222 Jun 14 10:14 .git/objects/0f/4d86f71b0edcb221b59b06074885a847ea5a64
-r--r--r-- 1 xiao4er xiao4er      535 Jun 14 10:14 .git/objects/12/a9c520713b8f70385bb90dde670662310eb058
-r--r--r-- 1 xiao4er xiao4er      313 Jun 14 10:14 .git/objects/33/0380111d23c582f6dffe662e0eb1a8bf846263
-r--r--r-- 1 xiao4er xiao4er      282 Jun 14 10:14 .git/objects/4a/c742053d163d42293887d1950fa53a3f5202b3
-r--r--r-- 1 xiao4er xiao4er      917 Jun 14 10:14 .git/objects/62/64445950af5571f66658300686f2fcb65a9294
-r--r--r-- 1 xiao4er xiao4er      357 Jun 14 10:14 .git/objects/7b/7dfb534ec827dcb93f8b758aa19b361c3eaad2
-r--r--r-- 1 xiao4er xiao4er      561 Jun 14 10:14 .git/objects/b3/e49ba17aa0b03233e113029abe665b22f6865f
-r--r--r-- 1 xiao4er xiao4er      782 Jun 14 10:14 .git/objects/b5/045c1f8bec0d8dd689be3e646fa65945518f3f
-r--r--r-- 1 xiao4er xiao4er      256 Jun 14 10:14 .git/objects/f2/0fe805574beefec87ddd21aec7ffc933e7d8c0
-r--r--r-- 1 xiao4er xiao4er      818 Jun 14 10:14 .git/objects/45/2184aaf16d366d8ebada1aa80088f4d8c8461b
-r--r--r-- 1 xiao4er xiao4er      311 Jun 14 10:14 .git/objects/65/394fd8d9e130cec2979ce986779f85763ad8af
...  

    2. 获取相应编号的文件内容并输出

git cat-file -p ID > ResultFile
    其中ID为Objects后面的文件编号(去掉/),ResultFile是输出结果的文件




你可能感兴趣的:(Git)