git 如何清理操作日志_git瘦身:清除大文件或敏感文件记录

使用git进行版本管理的项目随着提交代码次数增多,.git目录会逐渐增大。特别是由于没有及时添加进.gitignore的大文件会显著增加.git的大小。另外,由于一时疏忽而上传的敏感文件,即使从工作目录清除还是能在历史记录中查看到。

下面演示的方式就是如何彻底清除git中的大文件或隐私文件。

查询git中的大文件记录

git rev-list --objects --all | grep "$(git verify-pack -v .git/objects/pack/*.idx | sort -k 3 -n | tail -5 | awk '{print$1}')"

部分git项目会提示:

Cannot open existing pack file '.git/objects/pack/*.idx'

说明该项目并未触发git的packfile机制,可以忽略。

使用BFG Repo-Cleaner

BFG Repo-Cleaner是一个替代git原生命令git-filter-branch的解决git历史记录问题的方案,BFG Repo-Cleaner的使用更加方便简洁。项目官网:

下载到本地保存为bfg.jar,保证本地的java运行环境可用。

clone项目

git clone --mirror git@github.com:easeapi/test.git

注意:一定要使用--mirror参数。

标记删除文件

java -jar bfg.jar --delete-files (filename) test.git #指定文件删除

java -jar bfg.jar --strip-blobs-bigger-than 100M test.git #条件删除

The BFG will update your commits and all branches and tags so they are clean, but it doesn't physically delete the unwanted stuff. Examine the repo to make sure your history has been updated, and then use the standard git gc command to strip out the unwanted dirty data, which Git will now recognise as surplus to requirements:

删除文件

cd test.git

git reflog expire --expire=now --all && git gc --prune=now --aggressive

推送到远程

git push

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值