使用 Git Bash 查看我的存储库状态时,我可以看到许多标记为“已删除”的文件。LibGit2Sharp RepositoryStatus 将这些文件报告为“丢失”。RepositoryStatus 对象也有一个集合“Removed”。
这两者有什么区别?删除的文件不应该标记为“已删除”吗?
使用 Git Bash 查看我的存储库状态时,我可以看到许多标记为“已删除”的文件。LibGit2Sharp RepositoryStatus 将这些文件报告为“丢失”。RepositoryStatus 对象也有一个集合“Removed”。
这两者有什么区别?删除的文件不应该标记为“已删除”吗?
那么这两者有什么区别呢?
Missing和Removed是FileStatus枚举的条目。
如xml文档所述
Missing表示“该文件已从工作目录中删除。索引中存在以前的版本。”
Removed表示“删除的文件已从工作目录提升到 Index。Head 中存在以前的版本。”
它们可以被视为文件生命周期的特定状态。让我们考虑一个存在于工作目录、索引和 Head 中的文件。其状态为未更改。
当从工作目录中被抑制(即从文件系统中删除)时,文件的状态变为Missing
如果现在,一个阶段的文件抑制,它从索引中消失,状态变为已删除
不应该将已删除的文件标记为“已删除”吗?
Git 使用删除的同一个词来描述这两种状态。但是,有一些视觉线索可以让您消除它们的歧义。
跑步时git status
该部分下列出了丢失的文件,Changes not staged for commit:
并且删除的单词以红色显示
删除的文件列在该Changes to be committed:
部分下,删除的单词显示为绿色