使用Git Bash查看我的存储库状态时,我可以看到许多标记为“已删除”的文件。 LibGit2Sharp RepositoryStatus将这些文件报告为“Missing”。 RepositoryStatus对象还有一个集合“已删除”。
这两者有什么区别?删除的文件是否应该标记为“已删除”?
答案 0 :(得分:3)
那么这两者有什么区别?
缺少和已移除是 FileStatus 枚举的条目。
如xml文档所述
缺少表示“该文件已从工作目录中删除。索引中存在先前版本。”
已删除表示“已删除文件已从工作目录升级到索引。头部中存在先前版本。”
可以将它们视为文件生命周期的特定状态。让我们考虑一个存在于工作目录,索引和Head中的文件。其状态为未更改。
当从工作目录中删除(即从文件系统中删除)时,文件的状态变为 缺少
如果现在,有人对文件进行抑制,它会从索引中消失,状态变为已移除
删除的文件是否应该标记为“已删除”?
Git使用相同的单词已删除来描述这两种状态。但是,有一些视觉线索可以让你消除它们的歧义。
运行git status
缺少文件列在Changes not staged for commit:
部分下方,已删除的字词以红色
已移除的文件列在Changes to be committed:
部分下,已删除的字词以绿色