通过运行git rm
命令从项目中删除文件时,文件何时从索引中实际删除?提交删除时是删除它还是在运行git rm
时删除它?
根据我的理解,git rm涉及以下步骤:
我只是不确定文件是从索引开始删除还是提交删除。这些步骤也是正确的吗?
答案 0 :(得分:4)
它立即发生,但此时没有提交。也就是说,只有第1步和第2步适用。
考虑索引的一个好方法是,它是所有内容的第三个副本 - 或者实际上是第二个副本,而工作树是第三个。也就是说,在任何时候,你都有:
HEAD
或有时@
。由于这是一个提交,因此根本无法更改。请注意,您可以在此处双向复制文件:从HEAD
到索引,从索引到工作树,或从工作树到索引。但由于提交永远不会被更改,因此您无法从索引复制回HEAD
。 (你所做的是将 new 提交副本从索引转换为新提交。当然,新提交是永久性的。)
答案 1 :(得分:0)
当您运行git rm
时,它会从索引&中删除文件工作目录。
参考 - git-rm