为什么突然将git中的所有文件都标记为已删除?

时间:2018-01-10 18:53:05

标签: git

我有一个包含多个子模块的庞大项目。我今天唯一做的就是

git reflog

它返回了一组提交。

但现在,经过几个小时,当我即将进行一些更改时,git状态显示所有文件都需要再次添加,即所有文件都被删除并重新添加。

git ls-files

什么都不返回。 什么地方出了错?我该如何解决?

1 个答案:

答案 0 :(得分:2)

我已经在评论中要求澄清,所以如果我在这里推断出错了,我会在提供澄清后更新。但听起来你说的是,工作副本都存在,但git status可能会说类似

Changes to be committed

  deleted: file1
  deleted: file2
  ...

Untracked files

  file1
  file2
  ...

这表明您的索引已被某种方式消灭。可能会发生git rm --cachedgit reset的某些变体。或者可能是某种方式{@ 1}}文件被删除了。

无论如何,如果这是事情的状态,你可以

.git/index

在工作目录的根目录中,它应该没问题。然后,您将能够看到正确的git add . 将正在进行的工作与当前提交进行比较。

(我假设您仍然检查了预期的分支;您可能需要检查它。请记住,您希望在此时对任何会影响工作目录的命令小心,因为您有未提交的更改和如果git在他们犯下之前就已经失去了帮助,那么git就无法帮助你恢复它们,除非你继续将它们藏起来。)