清除git本地缓存

joz*_*sin 53 git

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

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

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

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

如何告诉Git刷新或清除其缓存?
我尝试/进入有问题的目录,然后输入

git clean -n

但没有文件出现.

Cod*_*ard 72

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

你必须从临时区域删除它们

git rm --cached .idea
Run Code Online (Sandbox Code Playgroud)

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

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

  • 我从不提交我试图忽略的文件,但是..这告诉我'致命:pathspec'.idea'与任何文件都不匹配 (3认同)
  • 我不知道,但它似乎你给我的命令工作,即使它返回一个致命的错误....文件不再显示提交. (2认同)

Kam*_*mar 50

当您认为您的git搞砸了时,您可以使用此命令来执行最新的操作.

git rm -r --cached .
git add .
git commit -am 'git cache cleared'
git push
Run Code Online (Sandbox Code Playgroud)

还要恢复上次提交使用此:

git reset HEAD^ --hard
Run Code Online (Sandbox Code Playgroud)

  • 如果您不想将更改推送到遥控器,请不要使用git push.但是,如果你这样做,请转到android studio底部的版本控制选项卡,右键单击上一次提交并选择"将当前分支重置为此处" (4认同)

Aks*_*mar 17

如果您对 git ignore 进行任何更改,那么您还必须清除 git 缓存

> git rm -r --cached . 
> git add . 
> git commit -m 'git cache cleared'
> git push
Run Code Online (Sandbox Code Playgroud)

如果要删除任何特定的文件夹或文件然后

git rm  --cached filepath/foldername
Run Code Online (Sandbox Code Playgroud)


小智 5

git rm --cached *.FileExtension
Run Code Online (Sandbox Code Playgroud)

这必须忽略来自此扩展名的所有文件


小智 5

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

git rm -r --cached 。

执行此命令后提交文件

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

git rm --cached 文件路径/文件夹名