git-rm 所说的工作树和索引是什么意思?
What does git-rm mean by working tree and index?
git-rm
的 documentation 包含以下简短描述:
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(当前签出的提交)之间的关系。更重要的是,它告诉你如何操作它们,因为这些命令真的不直观。
git-rm
的 documentation 包含以下简短描述:
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(当前签出的提交)之间的关系。更重要的是,它告诉你如何操作它们,因为这些命令真的不直观。