我错误地使用命令“git add dir”添加文件。我还没有运行“git commit”。是否有一种方法从提交中删除该dir和其中包含的所有内容?

我尝试过git重置目录,但它不工作。显然,git重置文件是撤销它的方法。但我有这么多文件,时间却这么少。


使用find和xargs:

find dir -type f | xargs git reset

你会想使用git rm——cached -r <dir>。该命令将从索引中删除暂存目录内容。

如果目录已经被跟踪,你必须手动找到新的和旧的文件,并取消它们…

可能在此之后运行git reset <dir>来重置目录中现有的(和已经跟踪的)文件。


2019年更新:

只需运行git重置目录,它将取消所有新添加的文件。


要从索引中删除目录及其中的所有内容,

git rm --cached -r dir

——cached开关使git rm只对索引进行操作,而不触及工作副本。-r开关使其递归。


Unstage目录

$ git reset <dir>

取消所有文件和文件夹我分期:

$ git add <dir>

确认目录未暂存

为了确认从暂存中删除目录及其内容(即“提交的更改”),运行以下命令:

$ git status

or

$ git diff --staged --name-only 

确认之前暂存的所有文件夹或文件都仍处于暂存状态。


一个删除暂存文件/文件夹的简单命令是- git restore——staging <dir>。