我使用命令“git add dir”错误地添加了文件。我还没有运行“git commit”。有没有办法从提交中删除此目录及其中包含的所有内容?
我尝试了git reset dir
,但它没有用。显然git reset file
是解除它的方法。但是我有这么多文件而且时间很少。
答案 0 :(得分:246)
从索引中删除目录及其中的所有内容,
git rm --cached -r dir
--cached
开关使git rm
仅对索引进行操作,而不是触及工作副本。 -r
开关使其递归。
答案 1 :(得分:14)
您需要使用 git rm --cached -r <dir>
。此命令将从索引中删除暂存的目录内容。
如果已经跟踪了目录,则必须手动查找新旧文件并取消暂存...
之后可能运行 git reset <dir>
以重置目录中的现有(和已经跟踪的)文件。
更新2019:
只需运行git reset directory
,它就会取消暂存所有新添加的文件。
答案 2 :(得分:11)
答案 3 :(得分:5)
$ git add <dir>
取消暂存我暂存的所有文件和文件夹:
$ git status
以上内容已通过以下方式得到确认:
$ git diff --staged --name-only
或
$git diff --staged --name-only
在git add命令之后,以确认文件和文件夹为“要提交的更改”。
运行我使用的git reset命令后:
Proxy
确认以前暂存的文件夹或文件都没有暂存。
答案 4 :(得分:1)