我错误地使用命令"git add dir"添加了文件。 我还没有运行"git commit"。 有没有办法从提交中删除这个目录及其中包含的所有内容?
我尝试过git reset dir
,但它没有起作用。 显然git reset file
是撤消操作的正确方式。 但是我有很多文件,时间很少。
git rm --cached -r dir
--cached
选项使git rm
仅对索引操作,不涉及工作副本。-r
选项使其递归执行。
git reset HEAD folder
修复了一切...但在执行此操作之前,请执行 git status folder
,确保它说它已经 '删除' 了该文件夹中的所有文件。 - pr00thmatic您需要使用git rm --cached -r <dir>
命令,该命令将从索引中删除已暂存的目录内容。
如果目录已经被跟踪,则必须手动查找新旧文件并取消暂存...
然后可能要运行git reset <dir>
来重置目录内现有(已跟踪)的文件。
更新于2019年:
只需运行git reset directory
,它将取消暂存所有新添加的文件。
git reset <dir>
单独执行不够吗? - Bananachgit reset <dir>
也可以。这个答案是从2011年的,所以我不确定8年前是否已经可行。我会更新答案。谢谢你的提示! - knittl取消暂存目录
$ git reset <dir>
取消我之前使用以下命令暂存的所有文件和文件夹:
$ git add <dir>
确认目录未暂存
为了确认从暂存区(即“将要提交的更改”)中移除目录及其内容,请运行以下命令:
$ git status
或者$ git diff --staged --name-only
确认之前暂存的文件或文件夹是否已经全部取消暂存。
git reset <path>
命令会更新该路径下的索引(index),使其与当前提交的代码版本HEAD
一致,但不会影响工作区(working tree)。 - Cascabel