场景
项目有一个视频文件(video/a.mp4),文件比较大,前期由于忘记添加到.gitignore,导致不小心加入了版本库,这时候如果推送到远程仓库,其它成员拉取时就会特别缓慢
原因分析
文件已经被版本控制了(即已git add + git commit),这个时候如果直接给.gitignore添加文件是不会生效的,因为.gitignore是用来控制尚未被纳入版本控制的文件
解决方案
-
删除暂存区文件:
git rm --cached video/a.mp4该操作并不会删除工作区中的文件(项目中的
video/a.mp4还在),只是从暂存区中将文件删除,且会在暂存区中生成一个删除了该文件的记录 -
将该文件写入
.gitignore中# 过滤目录 node_modules dist # 过滤文件 .vscode/* video/*.mp4 -
提交修改:
git commitgit commit -m "忽略已经被版本控制的文件a.mp4"
如果已经推送到远程仓库,再执行git push命令即可
PS: 如果拥有远程仓库的权限,可直接在远程仓库删除文件,最终效果跟上面一至