git-rm 所说的工作树和索引是什么意思?

What does git-rm mean by working tree and index?

git-rmdocumentation 包含以下简短描述:

git-rm - Remove files from the working tree and from the index

工作树和索引究竟是什么意思,哪些本地或远程文件将被删除?

这意味着从工作树中删除:您克隆此存储库的文件系统树的工作目录以及 git 维护的 .git 目录中的索引。 git rm 永远不会单独从工作目录中删除文件,否则会使索引数据库处于不一致状态。要使用基于 Unix 的 rm 命令通知索引数据库有关删除文件的信息,您需要 运行 git commit -a 这实际上删除了已删除对象的索引。

"working tree" 是您签出磁盘上的文件。

"index"、"staging area" 或 "cache"(您会看到它被称为所有三个)在 Git 内部。这是您准备下一次提交的 space。当您 git add 时,您正在将文件从工作树复制到暂存区。当您 git commit 提交暂存区中的内容时。

git rm 从工作树和暂存区中删除文件(除非你告诉它只使用 --cached 从暂存区中删除)。

This cheat sheet 可能会帮助您理解工作树、暂存区和 HEAD(当前签出的提交)之间的关系。更重要的是,它告诉你如何操作它们,因为这些命令真的不直观。