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

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


当前回答

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

git checkout -- <file>

其他回答

要立即取消所有操作,运行此命令

git reset HEAD -- .

Git重置<文件>

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

如果您对许多跟踪文件进行了更改,但只想运行其中的一些文件,则执行

转到添加 。

并不总是有利的(或推荐的)——因为它会阶段性地跟踪所有的文件(在某些情况下,您希望仅将更改保留给自己,而不希望将它们阶段性地转移到远程存储库)。

做一堆也不理想

git add路径/to/file1路径/to/file2

如果你有很多嵌套的目录(这是大多数项目的情况)-很烦人

这就是Git GUI有帮助的时候(可能是我唯一一次使用它)。只要打开Git GUI,它就会显示阶段性和非阶段性文件部分。从要取消staging的部分中选择文件并按下

Ctrl+U (windows)

让他们退出舞台。

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

git checkout -- <file>

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

git reset HEAD .

假设您只需要重置一个文件。