我有一个包含多个子模块的庞大项目。我今天唯一做的就是
git reflog
它返回了一组提交。
但现在,经过几个小时,当我即将进行一些更改时,git状态显示所有文件都需要再次添加,即所有文件都被删除并重新添加。
git ls-files
什么都不返回。 什么地方出了错?我该如何解决?
答案 0 :(得分:2)
我已经在评论中要求澄清,所以如果我在这里推断出错了,我会在提供澄清后更新。但听起来你说的是,工作副本都存在,但git status
可能会说类似
Changes to be committed
deleted: file1
deleted: file2
...
Untracked files
file1
file2
...
这表明您的索引已被某种方式消灭。可能会发生git rm --cached
或git reset
的某些变体。或者可能是某种方式{@ 1}}文件被删除了。
无论如何,如果这是事情的状态,你可以
.git/index
在工作目录的根目录中,它应该没问题。然后,您将能够看到正确的git add .
将正在进行的工作与当前提交进行比较。
(我假设您仍然检查了预期的分支;您可能需要检查它。请记住,您希望在此时对任何会影响工作目录的命令小心,因为您有未提交的更改和如果git在他们犯下之前就已经失去了帮助,那么git就无法帮助你恢复它们,除非你继续将它们藏起来。)