1
zjsxwc 2019-11-19 20:51:53 +08:00
无解,如果你用 JB 家的 IDE 的话打开那个要恢复的文件看看 工具栏 VCS --> Local History --> Show History 有没有记录可以恢复吧
|
2
zjsxwc 2019-11-19 20:54:36 +08:00
如何要恢复的文件已经被删掉了,就选中上级目录后 看看 工具栏 VCS --> Local History --> Show History 有没有记录可以恢复
|
3
Dachunlv 2019-11-19 20:57:25 +08:00 via iPhone
如果楼主用的是 Intellij IDEA 或者工程放在了 Dropbox 中,还有救,其他的恢复方式还不清楚...
|
4
tsl0922 2019-11-19 21:46:03 +08:00 2
如果没有执行过 gc 的话,还能恢复,但是文件名应该没了。试试 git fsck --lost-found,有没有 dangling 的 blob 对象列出,然后尝试 git cat-file -p 对象 id 能输出对象内容。
|
5
bejond 2019-11-19 22:19:01 +08:00
你把你最后执行的几个命令到谷歌上搜搜,加个 revert。一般你能遇到的事故,大牛都有解决方案。
|
6
githua 2019-11-19 23:10:50 +08:00 1
不用担心,可以找回的,在你执行 git add 的时候,git 已经帮你把他们保存到 .git\objects 目录了。这里有个命令可以查看文件内容,如果文件很多,可以批量执行。
$ git cat-file -p e61ef7b965e17c62ca23b6ff5f0aaf09586e10e9 --- 因为我是 githui.com |
7
IridiumPt 2019-11-20 01:17:18 +08:00 via iPad 1
如#4 和#6 所说,可以根据添加文件后生成的 blob_id 查,到.git\objects 目录把文件夹按时间排序锁定 git add .后创建的文件夹,文件夹名+文件名=对应的 blob_id,然后 git cat-file -p blob_id
|
8
passerbytiny 2019-11-20 08:53:22 +08:00
所有 git 命令都是不允许删除本地工作空间已修改内容的。如果你只是不小心从暂存区撤销,那么新增文件应该在本地工作空间,不会消失。如果消失了,那是你(或者你的 GUI )做了其他操作。
目前的情况,你连问题现象都很难说清楚,建议还是找个人帮你现场解决。或者,通读一遍 https://git-scm.com/book/zh/v2 然后再求助搜索引擎 |
9
xzysaber 2019-11-20 09:27:29 +08:00
不知道是否理解了你的描述(或许遗漏了部分描述),如果只是从 stage 撤销,那么文件还是在工作区的,可以用 git status 查看下。如果你还做了一些没有描述的操作导致工作区中的文件也丢失了,如果 IDE 用的是 jetbarins 家的话,或许可以从 local history 中找回,或者直接在 IDE 内 Ctrl+z 试下。
|
10
cco 2019-11-20 10:36:50 +08:00
新增的文件,撤销不会不见啊。
git reset HEAD |
11
az999 2019-11-20 10:48:37 +08:00
|
12
lepig 2019-11-20 11:21:52 +08:00
@IridiumPt 我使用`git add .`以后 然后 cd 到`.git/objects`下面查看,好像并没有我执行命令的时间点创建的文件夹呢?
|
13
overflow99 OP ---已解决---
通过 @tsl0922 的方法,找到了文件,里面是每个文件和 commit 历史 查看:git cat-file -p + <hash> 如果是文件看到具体可读代码,如果是 commit 看到文件改动信息 恢复:git stash apply +<hash> 由于我是一次性增加很多文件,中途没提交过一次,这种方法恢复起来比较麻烦,哎。。。我已经开始重写了。给大家个建议,开发过程中尽量要多次 commit |