美文网首页美文共赏
Git 恢复暂存区(git add之后的)文件

Git 恢复暂存区(git add之后的)文件

作者: 塞北孤雁 | 来源:发表于2021-11-25 14:30 被阅读0次

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

    但是可以通过以下办法找回:

    1.找出最近放到缓存区的的文件

    find .git/objects -type f | xargs ls -lt | sed 10q
    

    这个命令会列出最近修改的10个文件,结果如下

    -r--r--r--  1 wangdi  staff       202 11 25 14:19 .git/objects/7b/b3b74de4432b36d4c8be1109cb887b3858e37a
    -r--r--r--  1 wangdi  staff       282 11 25 14:19 .git/objects/f2/d4073df05e0275c931ca94f046847984bd42c6
    -r--r--r--  1 wangdi  staff       345 11 25 14:19 .git/objects/49/88d62d11b4d46ba0e486fb11ffea1d5c8f91c6
    -r--r--r--  1 wangdi  staff       174 11 25 14:19 .git/objects/af/27d3d78a294139e295e7dd1033ddabce52a8ae
    -r--r--r--  1 wangdi  staff        80 11 25 14:19 .git/objects/d6/834e800bfbc02f7d3bb13e3267c40deadc4e84
    -r--r--r--  1 wangdi  staff       132 11 25 14:19 .git/objects/39/172cb7f6d7bc3087e857cbc08c44f339e03abe
    -r--r--r--  1 wangdi  staff        74 11 25 14:19 .git/objects/82/3fa3dc5341a7f1edfd8c7819576a2cbc210248
    -r--r--r--  1 wangdi  staff       167 11 25 14:19 .git/objects/66/f1cc31dc3e842adab417eb39a1eaaf02a0645d
    -r--r--r--  1 wangdi  staff       163 11 25 14:19 .git/objects/42/cc312740bfda42c88292eb6b2ff433db854edb
    

    2.输出文件内容

    因为这些文件都是通过特殊处理的,无法直接看到文件内容,需要通过如下命令输出一下

    git cat-file -p ID > fileName
    

    其中ID为Objects后面的文件编号(去掉/),ResultFile是输出结果的文件,具体使用演示如下

    git cat-file -p 7bb3b74de4432b36d4c8be1109cb887b3858e37a >~/aaaa/b3b74de4432b36d4c8be1109cb887b3858e37a
    

    我是在自己的根目录下建立了一个aaaa的文件夹,然后通过终端,在该目录下搜索某个文件中的关键字符(如:STUrl_userAgreement)可以找到对应的文件

    grep -Fnr STUrl_userAgreement .
    

    结果如下:

    ./dc7a4d3a91cee7f9567f082a1aea0bc65075b5:11:let STUrl_userAgreement = "https://app.strongwinds.cn/about/user-agreement.html"
    ./e66441250d8fac370726ea4a18b6cb3e933e5e:275:        webController.url = STUrl_userAgreement
    

    这样就可以找到对应内容的文件了!

    相关文章

      网友评论

        本文标题:Git 恢复暂存区(git add之后的)文件

        本文链接:https://www.haomeiwen.com/subject/crnatrtx.html