我对本地存储库中的某些文件进行了更改,然后我做了一些修改git add -A
,我认为这将过多的文件添加到暂存区。如何从暂存区删除所有文件?
完成之后,我将手动进行操作git add "filename"
。
git status
已经完全告诉您要取消暂存文件的操作。
git add -p
或满意git add --patch
(它们相同)。该标志使您可以交互地选择要暂存的文件或单个更改-然后可以更精细地了解提交中包含的工作。
我对本地存储库中的某些文件进行了更改,然后我做了一些修改git add -A
,我认为这将过多的文件添加到暂存区。如何从暂存区删除所有文件?
完成之后,我将手动进行操作git add "filename"
。
git status
已经完全告诉您要取消暂存文件的操作。
git add -p
或满意git add --patch
(它们相同)。该标志使您可以交互地选择要暂存的文件或单个更改-然后可以更精细地了解提交中包含的工作。
Answers:
您可以使用以下命令从索引中取消暂存文件
git reset HEAD -- path/to/file
就像一样git add
,您可以按目录递归取消文件的顺序,依此类推,因此要立即取消一切,请从存储库的根目录运行:
git reset HEAD -- .
另外,为了将来参考,的输出git status
还将告诉您将文件从一种状态转移到另一种状态所需的命令。
$ git reset HEAD -- .
生产的fatal: Failed to resolve 'HEAD' as a valid ref.
注意,我从来没有任何承诺; 它的第一个git add
后git init
git reset @
。
git reset
吗?
@
是的同义词HEAD
。
如果您已经提交了许多不需要的文件,则可以取消暂存它们,并告诉git将它们标记为已删除(实际上并没有删除它们),
git rm --cached -r .
--cached
告诉它从暂存和索引中删除路径,而不删除文件本身,并-r
递归地对目录进行操作。然后git add
,您可以继续跟踪任何文件。
rm
所有文件的实际选项。
--cached
确实是要停止跟踪您已经提交的文件。因此,该文件实际上并未删除,但是git认为确实是删除了。我已经在回答中澄清了这一点。
你可以用
git reset HEAD
然后添加所需的特定文件
git add [directory/]filename
git status
将告诉您工作目录干净 -说谎!git clean -df
做了工作,谢谢。
git clean -df
将永久删除文件。在类似UNIX的系统上,它将调用,unlink()
并且您删除的文件将无法恢复。
如其他答案所述,您应该使用git reset
。这将撤消的动作git add -A
。
注意: git reset
等同于git reset --mixed
这样做
重置索引,但不重置工作树(即,已更改的文件将保留,但未标记为提交),并报告尚未更新的内容。这是默认操作。[ git reset ]
git reset filenameToNotCommit
您可以通过以下几种方式重置登台区域:
重置HEAD并添加所有必需的文件以再次检入,如下所示:
git reset HEAD ---> removes all files from the staging area
git add <files, that are required to be committed>
git commit -m "<commit message>"
git push
要从暂存区中删除所有文件,请使用-
git reset
要删除特定文件,请使用-
git reset "File path"
使用“ git reset HEAD <file>...
”取消整理文件
例如:取消暂存所有文件
git reset HEAD .
取消暂存一个文件
git reset HEAD nameFile.txt
我尝试了所有这些方法,但没有一个对我有用。我用git的删除文件rm -rf .git
形式的本地仓库,然后又做了git init
和git add
和常规命令。有效。