本文目标:开发人员,在了解git fsck命令用法的条件下,进行git add成功但由于误操作导致丢失的文件找回,达到找回丢失文件的程度。
1 痛点
开发过程中,分支太多(基线分支、开发分支、功能分支、…),在切换、合并等过程中,出现本地add完成,但忘记commit的文件丢失现象。
本文以切换导致该现象为例,介绍找回方法。
先进行场景复现。
在develop分支,新增文件“Test.java”。
文件内容为:
public class Test {
public String a;
}
使用git add命令提交至缓存区。
此时忘记git commit,直接强制切换至feature分支,并再次切换回develop分支,发现文件没了。
2 解决方案
使用git fsck命令找回丢失文件。
git fsck --lost-found
命令执行后,在隐藏文件夹“.git”中寻找丢失内容。(相对路径为“git\lost-found\other”)
查看内容:
文件名称不容易看出来内容,当目录下文件数量过多时,可以根据关键字使用Notepad++搜索整个目录,可以更快的找到对应文件。
3 总结/练习
本文介绍了使用git fsck命令,找回git add成功但没有commit文件的方法。
可以尝试在自己的项目中,使用“2 解决方案”章节的方法,进行文件找回。