.git文件夹过大

原因

在频繁增删改、commit之后,.git文件会出现过大的情况

这个时候需要彻底清理以前的历史版本(也就是说只保留当前版本,不可能再回滚了)

解决方法

1 工程迁移

中心思想就是创建一个新工程把现有代码拷贝过去

  1. 创建新的工程,拷贝现有代码
  2. git init创建新仓库
  3. git remote add origin url添加远程仓库地址
  4. git add . git commit -m "message"
  5. 强制更新存储库git push -f origin master

注意:一定是强制更新远程仓库的,因为原先的git记录都将不再,直接push是有冲突的

2 创建新分支

方法是首先建立一个分支,然后将master版本给删除,再将当前分支重命名为master,再强制push到远程仓库即可

  1. git checkout --orphan latest_branch
  2. 添加所有文件git add -A
  3. 提交更改git commit -m "commit message"
  4. 删除分支git branch -D master
  5. 将当前分支重命名git branch -m master
  6. 强制更新存储库git push -f origin master

就此完成。

3 删除历史记录

这里是修改.git文件夹中的内容

#!/bin/bash

COMM=`git verify-pack -v .git/objects/pack/pack-*.idx | sort -k 3 -g | tail -10 >1.txt`

for value in `cat 1.txt |awk '{print $1}'`
do
	git rev-list --objects --all | grep "${value}" >2.txt
	a=`cat 2.txt |awk '{print $2}'`
	git log --pretty=oneline --branches -- ${a}
	git filter-branch --index-filter "git rm --cached --ignore-unmatch ${a}" -- --all
	git push --force
	rm -Rf .git/refs/original
	rm -Rf .git/logs/
	git gc
	git prune
done

这个代码没有测试,不知道能不能成功,推荐方法1或者2

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值