清空git缓存

一、总结

一句话总结:

git rm --cached "文件路径",不删除物理文件,仅将该文件从缓存中删除;
git rm --f "文件路径",不仅将该文件从缓存中删除,还会将物理文件删除(不会回收到垃圾桶);

 

二、清空git缓存

 

删除缓冲区中的文件

  1.  git rm --cached "文件路径",不删除物理文件,仅将该文件从缓存中删除;
  2.  git rm --f "文件路径",不仅将该文件从缓存中删除,还会将物理文件删除(不会回收到垃圾桶);

 

  如果一个文件已经add到暂存区,还没有 commit,此时如果不想要这个文件了,有两种方法:

  1. 用版本库内容清空暂存区,git reset HEAD 回退到当前版本(在Git中,用HEAD表示当前版本,上一个版本就是HEAD^,上上一个版本就是HEAD^^,当然往上100个版本写100个^比较容易数不过来,所以写成HEAD~100);
  2. 只把特定文件从暂存区删除,git rm --cached xxx;

 

======================================================

git rm -r --cached .

git add .

git commit -m 'update .gitignore'

 

读了下git文档,才发现,这些东西其实很简单,很容易理解。cached其实就是暂存区,然后一个是工作的目录,你的工作目录的东西做出修改时,会和缓存区进行对比,因此你git status时,会显示出来这个差异,因此为了使.gitignore中的内容生效,那么就删除掉暂存区,然后将所有本地文件追踪一下,就得到最新的暂存区文件。