Git删除已提交的文件
Git删除已提交的文件
昨天通过Git Bash提交代码的时候遇到了由于单个文件大小超过100M,导致代码上传失败的问题。考虑到那个大文件是用于训练模型的数据集,并没有进行版本控制的必要,为了方便以后能快速推送和拉取代码,决定设置Git忽略该文件并且从提交记录中删除它。本文记录了Git删除已提交的文件的整个过程,主要内容包括定位文件和删除文件。
定位文件
通过
git rev-list命令确定需要删除的文件git rev-list --objects --all 6e218fcb1ce2dea99b0b11c4b2622e374c346d92 data/unaligned/dev
6cefb1936b02424bfeff514dbeee0c8e18f78fd4 data/unaligned/test
adcdc9fd6b3171ef173e43a2dde9d3502b59c504 data/unaligned/train
可以配合使用
git verify-pack和git rev-list找出仓库中的大文件git verify-pack -v .git/objects/pack/pack-*.idx | sort -k 3 -g | tail -5 git rev-list --objects --all | grep adcdc9fd6b3171ef173e43a2dde9d3502b59c504 adcdc9fd6b3171ef173e43a2dde9d3502b59c504 data/unaligned/train
删除文件
通过
git filter-branch命令删除文件git filter-branch --index-filter 'git rm --cached --ignore-unmatch data/unaligned/train' -- --all
主动回收资源、清理仓库
Git仓库历史有个缓存期,如果不主动回收、清理仓库历史,一般的这些记录还会保存一段时间。通过以下命令可以主动回收资源:
rm -rf .git/refs/original/
rm -rf .git/logs/ git gc
git prune
参考链接
Git删除已提交的文件的更多相关文章
- git忽略已提交的文件或目录
项目中的某个文件或目录已经被commit,并push到远程服务器server了. 这时发现要忽略该文件或目录,在.gitignore文件里面添加规则已经不起作用了.因为.gitignore只对从来没有 ...
- git 删除未提交的文件
git checkout . && git clean -xdf
- Eclipse中使用GIT将已提交到本地的文件上传至远程仓库
GIT将已提交到本地的文件上传至远程仓库: 1. 右击项目——Team——Push to Upstream,即可将已保存在本地的文件上传推至GIT远程仓库.
- git 修改已提交了的备注信息的方法
git 修改已提交了的备注信息的方法: 1.当我们已通过 git commit -m '已提交的最新的备注' 命令将代码提交到了缓存区,或者进一步执行了 git push origin master ...
- git如何删除已经提交的文件夹
在上传项目到github时,忘记忽略了某个文件夹.idea,就直接push上去了, 最后意识到了此问题,决定删除掉远程仓库中的.idea文件夹 删除前: 删除后: 在github上只能删除仓库,却无法 ...
- git rm -r --cached解决已提交的文件在.gitignore中加入忽略后无效的问题。
有时候,发现有不该提交的文件已经提交后,仅仅在.gitignore中加入忽略是不行的.这个时候需要执行: git rm -r --cached 文件/文件夹名字 去掉已经托管的文件,然后重新提交: g ...
- git 删除所有提交下的某个文件
git filter-branch --force --index-filter 'git rm --cached --ignore-unmatch upload/*' --prune-empty - ...
- git commit时暂时忽略已提交的文件
当正在修改某文件A,此时需要commit,但是A没修改完暂时不能一起commit. 执行: git update-index --assume-unchanged A的路径 git暂时会忽略该文件的修 ...
- git 忽略已跟踪的文件
对于未跟踪的文件,可以编辑.gitignore文件进行忽略. 对于已跟踪的文件,编辑.gitignore文件不会起作用,它只针对未被跟踪的文件,也就是你先设置规则,然后添加的新文件符合这些规则的就会被 ...
随机推荐
- Python GUI tkinter 学习笔记(一)
第一个python程序 #!/usr/bin/python # -*- coding: UTF-8 -*- from Tkinter import * # 创建一个根窗口,其余的控件都在这个窗口之上 ...
- MySQL — 数据查询语言
目录 1.基础查询 2.条件查询 3.分组查询 4.排序查询 5.分页查询 6.多表查询 6.1.连接查询 6.1.1.内连接 6.1.2.外连接 6.1.3.自连接 6.1.4.联合查询 6.2.子 ...
- zookeeper 负载均衡和 nginx 负载均衡区别 ?
zk 的负载均衡是可以调控,nginx 只是能调权重,其他需要可控的都需要自己写插件:但是 nginx 的吞吐量比 zk 大很多,应该说按业务选择用哪种方式.
- Java并发机制(2)--synchronized与Lock
本内容整理自:博客园-海 子-java并发编程系列-http://www.cnblogs.com/dolphin0520/category/602384.html 1.基础: 1.什么时候出现线程安全 ...
- 模糊查询like语句该怎么写?
第1种:在Java代码中添加sql通配符. string wildcardname = "%smi%"; list<name> names = mapper.selec ...
- char型变量中能不能存贮一个中文汉字?为什么?
char型变量是用来存储Unicode编码的字符的,unicode编码字符集中包含了汉字,所以,char型变量中当然可以存储汉字啦.不过,如果某个特殊的汉字没有被包含在unicode编码字符集中,那么 ...
- docker-compose安装和使用
安装:https://my.oschina.net/thinwonton/blog/2985886 docker-compose和Dockerfile结合使用,创建django项目和postgres数 ...
- Netty学习摘记 —— ByteBuf详解
本文参考 本篇文章是对<Netty In Action>一书第五章"ByteBuf"的学习摘记,主要内容为JDK 的ByteBuffer替代品ByteBuf的优越性 你 ...
- 顺利通过EMC实验(20)
- 1_开环系统和闭环系统_反馈控制_Open/Closed Loop System_Feedback