我想知道为什么我这样做:
git add <file>
之后,我做了:
git rm --cached <file>
该文件在阶段área中保持已删除状态。
这里的例子如下:
我仅正在寻找有关该文件“已删除”状态的说明。
由于
答案 0 :(得分:7)
尝试git reset HEAD yourFile
,而不是git rm --cached
。
混合重置会从索引中删除您的文件,而不会将其从工作树中删除
请参阅“Undo 'git add
' before commit”。
在您的情况下,git stash
需要在<{1}}之前,然后git reset
会在重置后恢复正在进行的更改。
关于git rm --cached
之后的“git stash pop
”状态,该命令在索引中注册文件的删除,这就是为什么你看到它被记录为下次提交的“已删除”的原因。
我问为什么删除状态是由
deleted
产生的,因为此命令应该与git rm --cached
中的git reset HEAD <file>
具有相同的行为。
嗯,不,git rm
的行为与[git reset][8]
的行为不同
两者都会影响索引,但是:
git rm
)将在下次提交时记录删除的文件,因此为“deleted
”状态,git reset
)会将HEAD复制到索引,将所述索引重置为文件在HEAD中的内容。答案 1 :(得分:0)
您已将文件添加到索引/缓存(屏幕截图中为绿色)并告知您要删除该文件。索引/缓存更改仅在提交完成时执行。
我想你可能把一个文件放在索引/缓存中,然后想删除它(所以它不会被提交)。
执行此操作的命令位于git status
给出的消息中(位于带圆圈的deleted
上方。
git reset HEAD <filename>