清除git本地缓存


92

我有一个要提交的Webstorm项目,但是在按Git Windows GUI中的提交按钮之前,我记得我不想提交.idea文件夹内容。

因此,我使用了.gitignores为某些IDE自动生成的网站,并将其添加到我的.gitignore文件中。

.idea尽管我删除并重新添加了有问题的文件,但所有被显式忽略的文件仍然显示要提交。

我还提交了gitignore文件,不包含任何其他文件,并重新粘贴了我的内容,但它仍然没有忽略.idea文件。

如何告诉Git刷新或清除其缓存?
我尝试/ cd进入相关目录,然后输入

git clean -n

但没有文件显示。

Answers:


120

所有被显式忽略的.idea文件仍然显示要提交

您必须将它们从暂存区中删除

git rm --cached .idea

现在您必须提交这些更改,从现在开始,它们将被忽略。
一旦git开始跟踪更改,即使以后将它们添加到.gitignore文件中,它也不会“停止”跟踪它们。

必须明确删除它们,然后手动提交删除,以完全忽略它们。


在此处输入图片说明

在此处输入图片说明


3
不过,我从未提交要尝试忽略的文件。.这告诉我fatal: pathspec '.idea' did not match any files
jozenbasin

当您输入git status时,您会看到它们吗?如果选中了“自动添加文件”复选框,则WebStorm可能已为您添加了文件
-CodeWizard

2
我不知道,但是您给我的命令似乎起作用了,即使它返回了致命错误....文件也不再显示要提交。
jozenbasin

您可以考虑添加-r以进行递归删除
-Vishrant

79

当您认为自己的git混乱时,可以使用此命令来执行最新操作。

git rm -r --cached .
git add .
git commit -am 'git cache cleared'
git push

还可以使用以下命令恢复上一次提交:

git reset HEAD^ --hard

6
如果您不想将更改推送到远程,请不要使用git push。但是,如果您这样做了,请转到android studio底部的版本控制标签,右键单击上一个提交,然后选择“将当前分支重置到此处”
Swapnil

重置部分充其量是令人困惑的。但是我做了'git push'的工作,还不错。
Seun S. Lawal

6

如果您对gitignore做任何更改,那么您还必须清除git缓存

> git rm -r --cached . 
> git add . 
> git commit -m 'git cache cleared'
> git push

如果要删除任何特定的文件夹或文件,则

git rm  --cached filepath/foldername


3

在git-ignore file中进行更改后,运行此命令,此命令将删除所有文件缓存,而不是文件或更改

git rm -r --cached。

执行此命令后,提交文件

用于从缓存中删除单个文件或文件夹,请使用此命令

git rm-缓存的文件路径/文件夹名称


By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.