git reset - 撤消“git add <dir>”?

我使用命令“git add dir”错误地添加了文件。 我还没有运行“git commit”。 有没有办法从提交中删除此目录及其中包含的所有内容?

我试过git reset dir,但它没有用。 显然git reset file是撤消它的方法。 但是我有这么多文件,所以时间很少。

neoneye asked 2019-05-10T19:49:58Z
4个解决方案
228 votes

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

git rm --cached -r dir

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

Aristotle Pagaltzis answered 2019-05-10T19:50:18Z
14 votes

您将要使用git reset <dir>.此命令将从索引中删除暂存的目录内容。

如果已经跟踪了目录,则必须手动查找新旧文件并取消暂存...

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

knittl answered 2019-05-10T19:50:56Z
10 votes

使用xargsxargs

find dir -type f | xargs git reset
marcog answered 2019-05-10T19:51:21Z
3 votes
$ git reset <dir>

取消暂停我上传的所有文件和文件夹:

$ git add <dir>

以上证实:

$ git status

要么

$ git diff --staged --name-only 

在git add命令之后,以确认“要提交的更改”的文件和文件夹。

运行git reset命令后我使用了:

$git diff --staged --name-only

确认之前暂存的文件夹或文件都没有上传。

mrduncle1 answered 2019-05-10T19:52:14Z
translate from https://stackoverflow.com:/questions/4639091/undo-git-add-dir