繁体   English   中英

如何从 git 暂存区删除文件?

[英]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 restore --staged <individual_file>

或者使用以下命令删除当前暂存的所有文件:

git restore --staged .

在将文件添加到暂存区后,在 git bash 终端中,您可以运行git status并在当前暂存文件上方为您显示该命令: 在此处输入图片说明

这很简单:

  1. 要检查当前目录中任何文件的当前状态,是否已暂存:

    git status

  2. 暂存任何文件:

    git add . 对于当前目录中的所有文件

    git add <filename>指定文件

  3. 取消暂存文件:

    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

这将从暂存区中删除所有文件

您可以通过以下几种方式重置暂存区:

  1. 重置 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 initgit add以及常规命令。 有效。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM