3

使用 Git Bash 查看我的存储库状态时,我可以看到许多标记为“已删除”的文件。LibGit2Sharp RepositoryStatus 将这些文件报告为“丢失”。RepositoryStatus 对象也有一个集合“Removed”。

这两者有什么区别?删除的文件不应该标记为“已删除”吗?

4

1 回答 1

4

那么这两者有什么区别呢?

MissingRemovedFileStatus枚举的条目。

如xml文档所述

  • Missing表示“该文件已从工作目录中删除。索引中存在以前的版本。”

  • Removed表示“删除的文件已从工作目录提升到 Index。Head 中存在以前的版本。”

它们可以被视为文件生命周期的特定状态。让我们考虑一个存在于工作目录、索引和 Head 中的文件。其状态为未更改

当从工作目录中被抑制(即从文件系统中删除)时,文件的状态变为Missing

如果现在,一个阶段的文件抑制,它从索引中消失,状态变为已删除

不应该将已删除的文件标记为“已删除”吗?

Git 使用删除的同一个词来描述这两种状态。但是,有一些视觉线索可以让您消除它们的歧义。

跑步时git status

  • 该部分下列出了丢失的文件,Changes not staged for commit:并且删除的单词以红色显示

  • 删除的文件列在该Changes to be committed:部分下,删除的单词显示为绿色

于 2012-06-25T18:17:59.210 回答