情况:我有一个Git存储库,索引中已经有文件。我修改了几个文件,打开Git,用“Git add”把这些文件添加到我的暂存区。
问:如何从暂存区删除其中一个文件,但不从索引中删除它,或撤消对文件本身的更改?
情况:我有一个Git存储库,索引中已经有文件。我修改了几个文件,打开Git,用“Git add”把这些文件添加到我的暂存区。
问:如何从暂存区删除其中一个文件,但不从索引中删除它,或撤消对文件本身的更改?
当前回答
您需要在文件的目录中,然后在终端中输入以下内容
git checkout -- <file>
其他回答
在2.23版本之后,Git引入了Git恢复命令,你可以使用它来恢复。引用官方文件:
类中的某些内容恢复工作树中的指定路径 恢复源。如果跟踪的路径在恢复中不存在 源,它将被删除以匹配源。 该命令还可以用于恢复索引中的内容 ——staging,或者使用——staging——worktree恢复工作树和索引。
因此,您可以调用git restore——staging <path>并取消该文件,但同时保留所做的更改。请记住,如果文件没有暂存,则会丢失对其所做的所有更改。
当你执行git status时,git会告诉你如何取消运行:
Changes to be committed: (use "git reset HEAD <file>..." to unstage).
所以git重置HEAD <文件>为我工作,这些变化没有被触及。
如果你想删除遵循某种模式的文件,并且你正在使用git rm——cached,你也可以使用file-glob模式。
在这里看到的。
我想你可以选
Git恢复——staging <path/to/file_name>
你想要的:
影响到单个文件 从暂存区删除文件 不能从索引中删除单个文件 不要撤消更改本身
答案是
git reset HEAD file_name.ext
or
git reset HEAD path/to/file/file_name.ext