Git RM –Cached 和 Git Reset File 的区别

本文讨论 git rm --cached 和 it reset<file> 命令之间的区别。 我们将讨论每个命令的功能,以了解两者之间的差异。


git rm –cached 和 git reset 之间的区别

为了更简单的上下文,我们将探索每个命令可以完成什么,然后分析这两个命令显示的不同输出。 让我们直接进入。

git rm –cached 命令

有时,Git 可以在运行 git status 命令后为您提供以下建议。

$ git status
On branch master

No commits yet

Changes to be committed:
  (use "git rm --cached <file>..." to unstage)

    new file:   .env

让我们尝试使用 rm 选项取消暂存  .env 文件。 我们将运行以下内容:

$ git rm --cached .env

让我们运行 git status 命令来检查我们工作目录的状态。

$ git status

输出:

Git RM --Cached 和 Git Reset File 的区别

从上面的输出中,我们可以看到我们的  .env 文件已被删除,但仍保留在未跟踪文件下。 让我们看看 git reset<file> 命令会做什么。

git reset <文件> 命令

我们将运行 git reset 命令,如下所示:

$ git reset HEAD .env

我们现在可以运行 git status 命令来检查我们的工作树。

$ git status

输出结果如下:

Git RM --Cached 和 Git Reset File 的区别

从上面的输出中,我们可以看到 git reset <file> 命令已经取消了对文件所做的修改。

git rm --cached 命令暂存一个文件以供删除,但不跟踪该文件。 另一方面,git reset <file> 命令只会取消暂存一个文件。

当你想在不修改工作树的情况下取消暂存未跟踪的文件时, git rm --cached 选项是理想的选择。 对应的命令 git reset <file> 将重置索引而不是工作树。

简而言之,git rm --cached 命令将删除索引中的路径并使它们不被跟踪,而 git reset<file> 命令将仅重置索引。 对未跟踪的文件使用 git rm --cached 命令。