我正在设置我的第一个git存储库并执行以下操作,
git init
Run Code Online (Sandbox Code Playgroud)
按照一些git-config的东西来设置远程服务器.然后我做了
git add directory
git status
Run Code Online (Sandbox Code Playgroud)
哎呀,我添加了一些我不想要的文件.好的,所以我应该gm rm从提交列表中删除目录并重新开始
git rm directory
Run Code Online (Sandbox Code Playgroud)
此时我应该正确阅读控制台消息和文档....但没有.所以我跑了
git rm directory -r -f
Run Code Online (Sandbox Code Playgroud)
咦?我的目录在哪里?啊,好吧,git删除了它,所以它"不在那里"了.所以试试吧,
git status
git reset --hard
Run Code Online (Sandbox Code Playgroud)
在没有成功,一些错误消息和一堆网络搜索后,我意识到我的失礼.我应该用过
git rm -r --cached directory
Run Code Online (Sandbox Code Playgroud)
它会从提交列表中删除它,但不会从我的文件系统中删除它.哎呦.幸运的是没有什么严重丢失
似乎应该有一种方法可以从中恢复,但我的大多数搜索最终都指向"--cached"选项...而且这有点晚了.没有提交,所以我不能只恢复/拉取文件(只有本地副本).
是否可以取回这些文件?
没有提交,所以我不能只恢复/拉取文件(只有本地副本)
和
是否可以取回这些文件?
答案是否定的.
没有提交,因此您没有使用源代码管理.
这些文件从未进入对象数据库.一般来说,你永远不能在git中获得未经注释的东西.您通常可以获得以前承诺的东西.
编辑
也可以看看
git reset --hard今天我也不小心跑了我的回购,而今天也有未提交的更改.为了得到它,我跑了git fsck --lost-found,写了所有未引用的blob<path to repo>/.git/lost-found/.由于文件是未提交的,我在其中的other目录中找到了它们<path to repo>/.git/lost-found/.从那里,我可以看到未提交的文件,复制blob,并重命名它们.注意:仅当您将要保存的文件添加到索引(使用
git add .)时,此选项才有效.如果文件不在索引中,则会丢失.