如何从git暂存区删除文件?

我对本地存储库中的一些文件进行了更改,然后我做了git add -A,我认为它向暂存区添加了太多文件。如何从暂存区中删除所有文件?

在我这样做之后,我将手动执行git add "filename"

1094312 次浏览

您可以使用从索引中取消暂存文件

git reset HEAD -- path/to/file

就像git add一样,您可以按目录递归取消暂存文件等等,因此要一次取消暂存所有内容,请从存储库的根目录运行它:

git reset HEAD -- .

此外,为了将来参考,git status的输出将告诉您将文件从一种状态移动到另一种状态所需运行的命令。

如果你已经提交了一堆不需要的文件,你可以取消它们告诉git将它们标记为已删除(而不是实际删除它们)

git rm --cached -r .

--cached告诉它从暂存和索引中删除路径,而不删除文件本身,-r递归地对目录进行操作。然后,您可以git add任何要跟踪的文件。

你可以用

git reset HEAD

然后添加您想要的特定文件

git add [directory/]filename

使用

git reset

取消暂存所有暂存文件。

如其他答案所述,您应该使用git reset。这将撤消git add -A的操作。

备注:git reset等价于git reset --mixed,这样做

重置索引而不是工作树(即保留更改的文件但不标记为提交)并报告尚未更新的内容。这是默认操作。[git重置 ]

我尝试了所有这些方法,但都不适合我。我使用rm -rf .git从本地存储库中删除了. git文件,然后再次执行git initgit add以及常规命令。它起作用了。

您可以通过几种方式重置暂存区:

  1. 重置HEAD并添加所有必要的文件以再次签入,如下所示:

     git reset HEAD ---> removes all files from the staging areagit add <files, that are required to be committed>git commit -m "<commit message>"git push

现在在v2.24.0建议

git restore --staged .

取消文件。

使用“git reset HEAD <file>...”取消暂存文件

ex:取消所有文件

git reset HEAD .

撤消一份文件

git reset HEAD nameFile.txt

要从暂存区域中删除所有文件,请使用-
git reset
要删除特定文件,请使用-
git reset "File path"

使用

git reset HEAD

这将从暂存区删除所有文件

如果不需要的文件被添加到暂存区域但尚未提交,那么简单的重置将完成这项工作:

$ git reset HEAD file# Or everything$ git reset HEAD .

要仅删除当前工作目录中未暂存的更改,请使用:

git checkout -- .

它非常简单:

  1. 要检查当前目录中任何文件的当前状态,无论是否暂存:

    git status

  2. 暂存任何文件:

    git add .对于当前目录中的所有文件

    git add <filename>特定文件

  3. 取消暂存文件:

    git restore --staged <filename>

使用以下命令从暂存区域中删除特定文件:

git restore --staged <individual_file>

或使用以下命令删除当前暂存的所有文件:

git restore --staged .

在您的git bash终端中,将文件添加到暂存区域后,您可以运行git status,并在当前暂存文件上方为您显示命令:输入图片描述

从暂存区中删除目录!git rm--cache<>

如果这不起作用,请使用-f标签git rm--cache<>-f

非常简单的答案

下面的git命令可以从暂存区删除所有文件

git restore --staged .

或者你可以

git restore -S .

注:从项目root directory运行这些命令,最后不要忘记.(点)!