git rm --cached 文件名 与git reset HEAD -- 文件名有啥区别?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了git rm --cached 文件名 与git reset HEAD -- 文件名有啥区别?相关的知识,希望对你有一定的参考价值。

git rm --cached <file>: 是删除暂存区的指定文件的意思。如果删除的是新文件,效果同reset;若删除的是之前有提交的老文件,暂存区该文件变成删除、工作区文件变成新增。
git reset HEAD <file>:使用 HEAD 节点的指定文件重置暂存区的意思。这样两边内容一致没有差异,等同于丢弃了暂存区的文件。HEAD 节点是当前分支最顶部的提交,也就是最新的一次提交。
参考技术A

git rm --cached xxx :从暂存区里移除文件,但是不删除工作区的文件。即取消跟踪这个文件。

git reset HEAD -- xxx:将 xxx 文件,最后一次提交(HEAD指针的位置)的版本,放入暂存区。

都可以用来取消当前改动的暂存,但 git rm --cached xxx 会取消跟踪文件,而 git reset HEAD -- xxx 不会。

git rm And git rm --cached And git reset HEAD

git rm

git rm 会将条目从缓存区中移除。这与 git reset HEAD 将条目取消缓存是有区别的。 "取消缓存"的意思就是将缓存区恢复为我们做出修改之前的样子。

 

默认情况下,git rm file 会将文件从缓存区和你的硬盘中(工作目录)删除。

如果你要在工作目录中留着该文件,可以使用 git rm --cached

如我们删除 hello.php文件:

git rm hello.php 

  当前的工作目录和 本地的缓存区都不会有hello.php文件了。

以上是关于git rm --cached 文件名 与git reset HEAD -- 文件名有啥区别?的主要内容,如果未能解决你的问题,请参考以下文章

git rm --cached 文件名 与git reset HEAD -- 文件名有啥区别?

git rm And git rm --cached And git reset HEAD

git rm -r --cached 去掉已经托管在git上的文件

GIT RM -R --CACHED 去掉已经托管在GIT上的文件

.gitignore 不起作用的解决办法 git rm -r --cached .;git add .

.gitignore 不起作用的解决办法 git rm -r --cached .;git add .