我想知道为什么当我这样做时:
git add <file>
之后,我会:
git rm --cached <file>
该文件在舞台区域中保持已删除状态。
这里的例子:
我只是在寻找有关文件“已删除”状态的解释。
谢谢
尝试 a git reset HEAD yourFile
,而不是 a git rm --cached
。
混合重置将从索引中删除您的文件,而不会将其从工作树中删除。
请参阅“提交前撤消git add
”。
在您的情况下, agit stash
需要在之前,git reset
然后 agit stash pop
将在重置后恢复您正在进行的更改。
关于deleted
a 之后的 ' ' 状态git rm --cached
,该命令在索引中注册文件的删除,这就是为什么您看到它记录为下一次提交的“已删除”。
我在问为什么会出现已删除的状态,
git rm --cached
因为该命令的行为应该与git reset HEAD <file>
您在git rm
.
好吧,不, agit rm
的行为与 [ 不同git reset][8]
。
两者都会影响索引,但是:
git rm
) 将在下一次提交时记录要删除deleted
的文件,因此是 ' ' 状态,git reset
) 将 HEAD 复制到索引,将所述索引重置回 HEAD 中的文件。您将文件添加到索引/缓存中(屏幕截图中的绿色)并告诉您要删除该文件。索引/缓存更改仅在提交完成时执行。
我在想你可能把一个文件放在索引/缓存中,然后想删除它(所以它不会被提交)。
执行此操作的命令在消息中git status
为您提供(在带圆圈的deleted
.
git reset HEAD <filename>