[英]How to remove files from git staging area?
我对本地存储库中的一些文件进行了更改,然后我执行了git add -A
,我认为这向暂存区添加了太多文件。 如何从暂存区中删除所有文件?
在我这样做之后,我将手动执行git add "filename"
。
您可以使用从索引中取消暂存文件
git reset HEAD -- path/to/file
就像git add
,您可以通过目录等递归地取消git add
文件,因此要一次取消暂存所有内容,请从存储库的根目录运行它:
git reset HEAD -- .
此外,为了将来参考, git status
的输出将告诉您将文件从一种状态移动到另一种状态需要运行的命令。
用
git reset
取消暂存所有暂存文件。
如果您已经提交了一堆不需要的文件,您可以取消暂存它们并告诉 git 将它们标记为已删除(而不实际删除它们)
git rm --cached -r .
--cached
告诉它从暂存和索引中删除路径而不删除文件本身,并且-r
递归地对目录进行操作。 然后,您可以git add
任何要跟踪的文件。
现在在 v2.24.0 建议
git restore --staged .
取消暂存文件。
你可以用
git reset HEAD
然后添加您想要的特定文件
git add [directory/]filename
以下 git 命令可以从暂存区中删除所有文件
git restore --staged .
或者你可以
git restore -S .
注意:从项目root directory
运行这些命令,不要忘记.
(点)在最后!
要从暂存区中删除所有文件,请使用 -
git reset
要删除特定文件使用 -
git reset "File path"
这很简单:
要检查当前目录中任何文件的当前状态,是否已暂存:
git status
暂存任何文件:
git add .
对于当前目录中的所有文件
git add <filename>
指定文件
取消暂存文件:
git restore --staged <filename>
正如其他答案中所述,您应该使用git reset
。 这将撤消git add -A
。
注意: git reset
相当于git reset --mixed
这样做
重置索引但不重置工作树(即,更改的文件被保留但未标记为提交)并报告尚未更新的内容。 这是默认操作。 [ git重置]
如果不需要的文件被添加到暂存区但尚未提交,那么简单的重置就可以完成这项工作:
$ git reset HEAD file
# Or everything
$ git reset HEAD .
要仅删除当前工作目录中未暂存的更改,请使用:
git checkout -- .
使用“ git reset HEAD <file>...
”来取消git reset HEAD <file>...
例如:取消暂存所有文件
git reset HEAD .
取消暂存一个文件
git reset HEAD nameFile.txt
用
git reset HEAD
这将从暂存区中删除所有文件
您可以通过以下几种方式重置暂存区:
重置 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 rm --cached <<repo/目录名称>>
如果这不起作用,请使用 -f tag git rm --cached <<repo/directory name>> -f
撤消暂存区域中已经存在的文件的最佳方法是git reset --hard ,这可以使暂存的文件恢复原状 。 现在请小心,这将删除已分阶段和未分阶段的更改。
我尝试了所有这些方法,但没有一个对我有用。 我使用rm -rf .git
从本地存储库中删除了 .git 文件,然后再次执行git init
和git add
以及常规命令。 有效。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.