git定期清理提交歷史避免倉庫爆炸

git同步二進制文件會導致本地和遠程倉庫大小成倍增長,進而導致自動同步失敗。使用如下腳本來控制倉庫大小。
注意,清理操作會造成所有提交歷史log完全刪除,不可恢復,建議提前備份(只針對.git文件夾,不會影響工作區文件)

# # 每次推送檢查倉庫.git文件夾大小,需要定期在遠程倉庫gc
sizes=(`du -d0 .git`)
if [ ${sizes[0]} -gt 800000 ]
then
# 注意,此操作會造成所有提交歷史log完全刪除,不可恢復,建議提前備份
	git checkout --orphan latest_branch  # 新建空分支
	mongodump -d leanote -o leanote_db
	cp -r /home/changhonghe/github/leanote/files ./
	git add -A -v >> git.log
	git commit -m "update`date`"
	git branch -D master
	git branch -m master
	git push -f origin master >> git.log
	date >> git.log
	git branch --set-upstream-to=origin/master
else
	# 大小較小使用常規增量更新,提高效率
	mongodump -d leanote -o leanote_db
	cp -r /home/changhonghe/github/leanote/files ./
	git add . -v >> git.log
	git commit -m "update"
	git push >> git.log
	date >> git.log
fi
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章