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

时间:2013-10-08 08:01:55

标签: git

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

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

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

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

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

3 个答案:

答案 0 :(得分:2)

如果您使用

从本地磁盘删除了文件
rm file.name

如果已将file.name检入git。那么你应该发出这个命令

git rm file.name

告诉git你不想让它再跟踪那个文件

答案 1 :(得分:1)

  git co my_annoying_file
  git rm my_annoying_file
  git commit -m "removing annoying file"

现在它们真正从git tracking

中删除了 对于这种情况,

...也git reset --hard可能会变脆,请考虑git reset HEAD my_annoying_file

答案 2 :(得分:1)

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

git reset

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

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

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

git checkout -- path/to/file/or/dir

如果您有大量文件,可以使用git statuscut来解析xargs的简短形式。我会把它作为读者的练习,因为你声称所有的文件都在那里。