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