情况:我有一个Git存储库,索引中已经有文件。我修改了几个文件,打开Git,用“Git add”把这些文件添加到我的暂存区。

问:如何从暂存区删除其中一个文件,但不从索引中删除它,或撤消对文件本身的更改?


当前回答

当你执行git status时,git会告诉你如何取消运行:

Changes to be committed: (use "git reset HEAD <file>..." to unstage).

所以git重置HEAD <文件>为我工作,这些变化没有被触及。

其他回答

如果你想删除遵循某种模式的文件,并且你正在使用git rm——cached,你也可以使用file-glob模式。

在这里看到的。

Git重置<文件>

无论您是否有任何以前的提交。

Git checkout——<文件>

它完美地从暂存区删除文件

您需要在文件的目录中,然后在终端中输入以下内容

git checkout -- <file>

如果您只是想删除文件更改的子集,您可以使用:

git reset -p

or

git reset -p <file_name>

这个命令基本上与git add -p相反:它只会从暂存区域删除所选的更改。我发现它在“删除”我错误添加的东西时非常有用。