我有一个包含多个子模块的庞大项目。今天我唯一做的非凡的事情就是
git reflog
Run Code Online (Sandbox Code Playgroud)
它返回了一组提交。
但是现在,几个小时后,当我要提交一些更改时,git 状态显示所有文件都需要再次添加,即所有文件都被删除并重新添加。
git ls-files
Run Code Online (Sandbox Code Playgroud)
什么也不返回。什么地方出了错?我该如何解决它?
我已要求在评论中进行澄清,因此,如果我在这里推断的内容是错误的,我将在提供澄清后进行更新。但听起来你的意思是,工作副本都存在,但git status也许会说类似的话
Changes to be committed
deleted: file1
deleted: file2
...
Untracked files
file1
file2
...
Run Code Online (Sandbox Code Playgroud)
这表明您的索引已被删除。这种情况可能会随着git rm --cached或的一些变化而发生git reset。或者可能是由于某种原因.git/index文件被简单地删除了。
无论如何,如果事情就是这样,你可以
git add .
Run Code Online (Sandbox Code Playgroud)
在工作目录的根目录中,应该没问题。然后,您将能够看到git status正在进行的工作与当前提交的正确比较。
(我假设您仍然签出了预期的分支;您可能想检查一下。请记住,此时您要小心任何会影响工作目录的命令,因为您有未提交的更改,而 git 可以'如果它们在提交之前丢失,将无法帮助您恢复它们,除非您继续并隐藏它们。)
| 归档时间: |
|
| 查看次数: |
883 次 |
| 最近记录: |