211

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

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

4

5 回答 5

322

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

git rm --cached -r dir

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

于 2011-01-09T12:32:10.347 回答
28
于 2011-01-09T12:29:41.270 回答
19

取消暂存目录

$ git reset <dir>

取消暂存我暂存的所有文件和文件夹:

$ git add <dir>

确认目录未暂存

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

$ git status

或者

$ git diff --staged --name-only 

确认之前暂存的文件夹或文件均未暂存。

于 2018-07-24T03:03:24.290 回答
11

使用findxargs

find dir -type f | xargs git reset
于 2011-01-09T12:28:16.043 回答
1

删除尚未提交的暂存文件/文件夹的一个简单命令是 - git restore --staged <dir>

在此处输入图像描述

于 2019-12-21T05:45:42.453 回答