缓存和“删除”状态

我想知道为什么当我这样做时:

git add <file>

之后,我做了:

git rm --cached <file>

该文件在阶段área保持删除状态。

这里的例子: 在这里输入图像描述

我只是在寻找关于文件上'已删除'状态的解释。

谢谢


尝试一个git reset HEAD yourFile ,而不是一个git rm --cached

混合重置会将您的文件从索引中删除,而无需将其从工作树中移除。
请参阅“在提交之前撤销' git add '”。

在你的情况下, git stash需要在git reset之前,然后git stash pop会在复位后恢复正在进行的更改。


关于git rm --cached之后的' deleted '状态,该命令会在索引中注册该文件的删除,这就是为什么您会在下一次提交时将其记录为'deleted'的原因。

OP Ferpega坚持认为:

我问为什么删除的状态是有作为造成git rm --cached因为这个命令应该具有相同的行为比git reset HEAD <file> ,你可以在看git rm

那么,不, git rm与[ git reset][8]
两者都会影响指数,但是:

  • 一个( git rm )会在下一次提交时记录一个文件以便删除,因此“ deleted ”状态,
  • 另一个( git reset )会将HEAD复制到索引中,并将该索引重置为文件在HEAD中的内容。

  • 您将该文件添加到索引/缓存(在屏幕截图中为绿色),并告诉您要删除该文件。 索引/缓存更改仅在提交完成时执行。

    我想你可能把一个文件放在索引/缓存中,然后想删除它(所以它不会被提交)。

    执行此操作的命令是在git status给出的消息中(右上方被圈出的deleted

    git reset HEAD <filename>
    
    链接地址: http://www.djcxy.com/p/6177.html

    上一篇: cached and 'deleted' status

    下一篇: How to ignore IDE settings on Git?