git我是这么找回我未提交(或者未暂存的)文件

243 阅读1分钟

前情提要:

  本人同时branch了好几支分支,开发不同的功能,慌乱的某天中,A功能 终于写完了,激动的保存了代码。完美的一天结束了
  n天过后(忙完好多事情),自验功能时,惊呆,竟然功能不对。
  盲猜,漏保存了两个文件 ??糟糕,不会得重写吧(打死也不想重写!!)
  愤怒的狂找了git 的历史记录,十分认真的检查了每次记录,就是没有我提交过得痕迹(沮丧,且不信,哼)
  使用了git reflog
        git log -g等等
        以及一些他们后续的操作,都没有找到要找的文件,更加验证了我没有提交我本地分支的事实(凉凉)
        (这些操作的后续操作,感兴趣的话,请自行百度)
        

意外收获

 本人在找回代码的时候,意外的收获了其他操作,在此也记录分享下
 
  •  查看单个文件的提交记录
       方式1: 命令:gitk  文件路径  
       方式2:借助工具:smartgit  选中文件右键  有个“追溯”
       
    

image.png

git fsck

 真正帮我找回代码的是这个命令
 git fsck --lost-found
 执行完之后,会在你本地的 .git 中生成一个文件夹“lost-found”,
 这个存着被你丢失的文件,
 里面有两个文件夹 一个commit  是你提交过但是被删除的文件
                 另一个other 文件夹,是其他各种情况被删除的文件
                 找到这里之后,一个一个找就找到了
                 
                 

image.png

image.png

image.png

感叹:git真强大