我在我的本地repo中修改了一些文件,然后我做了git add -A,我认为这给暂存区添加了太多的文件。如何从暂存区删除所有文件?

之后,手动执行gitaddfilename。


当前回答

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

git rm --cached -r .

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

其他回答

可以从索引中取消文件

git reset HEAD -- path/to/file

就像git add一样,你可以按目录递归地取消文件,所以要一次性取消所有内容,从存储库的根目录运行这个命令:

git reset HEAD -- .

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

正如在其他回答中提到的,您应该使用git重置。这将撤销git add -A的操作。

注意:git reset等价于git reset -mixed

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

如果不需要的文件被添加到暂存区,但还没有提交,那么简单的重置将完成工作:

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

要只删除当前工作目录中的未分阶段更改,请使用:

git checkout -- .

use

git reset HEAD

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

我尝试了所有这些方法,但没有一个对我有效。我使用rm -rf .git从本地存储库中删除了.git文件,然后再次执行git初始化和git添加和例程命令。它工作。