如何从暂存区域删除目录子树?

我创建了一个新的存储库,并运行了 git add -A。然后我注意到有一个文件夹包含了大约100个不应该包含的文件,所以我把它添加到了 .gitignore

我现在如何清除暂存区,以便我可以 add所有的文件再次考虑到更新的 .gitignore

53242 次浏览

你只需要使用以下命令:

git reset

在 # git 中,您说您无意中添加了一个应该被忽略的目录,因此运行

git rm --cached -r directory-name

以递归方式从索引中移除扎根于 directory-name的树。

别忘了更新 .gitignore

确保你记得把 s放在 --global core.excludesfile .gitignore.txt

excludesfile vs excludefile

也许这能帮别人节省我失去的时间。

通过一个相当现代的 git 版本,你现在可以做到:

git reset foldername/*

我找到了从2.12.5版本开始的这个特性的最早的文档,但是它可能也适用于旧版本的 git。