Git 状态报告删除的文件仍然存在

bol*_*bol 5 git

我的 Git 状态显示deleted我的工作树中的所有文件不正确,它们仍然存在。

要解决它,我应该执行git reset --hardwhich 重置我对其他文件的所有修改。

知道如何解决它或它是如何发生的吗?

git status 输出:

On branch develop
Your branch is behind 'origin/develop' by 15 commits, and can be fast-forwarded.

Changes to be committed:
(use "git reset HEAD <file>..." to unstage)

deleted:    .gitignore
deleted:    v3/.gitignore
deleted:    v3/index-test.php
deleted:    v3/index.php
deleted:    v3/protected/.gitignore
deleted:    v3/protected/.htaccess
deleted:    v3/protected/Gruntfile.js
Run Code Online (Sandbox Code Playgroud)

编辑:以上不是完整的git status输出。我正在处理的那些文件没有准备删除。

Joh*_*ter 6

如果唯一的问题是某些文件已从索引中删除,但仍在工作树中,那么您需要做的就是:

git reset
Run Code Online (Sandbox Code Playgroud)

默认情况下,git reset默认为混合模式,其执行以下操作:

--混合
重置索引但不重置工作树(即保留更改的文件但不标记为提交)并报告尚未更新的内容。这是默认操作。

因此,它会保持您的更改完好无损,但会取消所有内容。如果您发现文件实际上丢失,那么您需要检查它们以恢复它们:

git checkout -- path/to/file/or/dir
Run Code Online (Sandbox Code Playgroud)

如果您有大量文件,您可以解析git statususing的缩写形式cut并帮助完成此操作。xargs不过,我会将其作为读者的练习,因为您声称所有文件都在那里。

  • 在云同步似乎弄乱了文件夹后,``git重置``对我有用。谢谢! (2认同)

equ*_*nt8 1

  git co my_annoying_file
  git rm my_annoying_file
  git commit -m "removing annoying file"
Run Code Online (Sandbox Code Playgroud)

现在它们真正从 git 跟踪中删除了

...git reset --hard对于这种情况也可能很脆弱,考虑一下git reset HEAD my_annoying_file