如何从Git的登台区域中删除单个文件,但是不能从索引中删除它,或者撤销对文件本身的更改?
情况:我有一个已经在索引中的文件的Git仓库。 我修改了几个文件,打开Git并用“git add”将这些文件添加到我的临时区域。
问题:如何从暂存区域中删除其中一个文件,但是不能将其从索引中删除,或撤消文件本身的更改?
如果我正确地理解了这个问题,你只需要“撤销”为该文件完成的git add 。 
 如果是这样的话,那么git reset HEAD -- <file>将完成这项工作。 如果您需要从暂存区域中删除整个目录(文件夹),请使用 
 git reset HEAD -- <directoryName> 
 你的修改将被保留。 当你运行git status ,文件会再次显示为已修改,但尚未暂存。 
 有关详细信息,请参阅git reset手册页 。 
 git rm --cached FILE 
,
 git rm -r --cached CVS */CVS 
 git reset <file> 
无论您是否有任何以前的提交,
所以,对Tim Henigan的回答略作调整:你需要在文件名之前使用。 它看起来像这样:
 git reset HEAD -- <file> 
 如果你想删除某些模式下的文件,而且你正在使用git rm --cached ,那么你也可以使用file-glob模式。 
看到这里 。
如果您只想删除文件的一部分更改,您可以使用:
 git reset -p 
要么
 git reset -p <file_name> 
 这个命令基本上与git add -p相反:它只会从暂存区域中删除所选的更改。 我发现它是非常有用的“未加载”,我误添了一些东西。 
您需要在文件的目录中,然后在terminal中input以下内容
 git reset HEAD . 
假设你只需要重置一个文件。
你要:
- 
影响到单个文件 
- 
从暂存区域删除文件 
- 
不从索引中删除单个文件 
- 
不要撤消更改本身 
和解决scheme是
 git reset HEAD file_name.ext 
要么
 git reset HEAD path/to/file/file_name.ext 
要立即停止所有操作,请运行此命令
 git reset HEAD -- . 
 git checkout -- <file> 
它完美地从分段区域移除文件
就我而言,我是这么做的
 git checkout -- FILE