学期资料备份GitHub

习惯做多份备份。

上学期间,每学期都会产生很多docx、pptx、pdf等,或许是结课论文,或许是课堂汇报ppt,或许是要交的材料文件,总爱做一份备份。
既是记录生活,也是存下过去。

由于我有两台电脑,而且手机也是也需要查看,所以云端必不可少。
往往还需要发给别人看,需要发送链接。

国内那些云盘有多难用,我就没必要赘述了。

过去一直用的OneDrive。但只有5GB免费空间,同步又需要走微软服务器,需要常驻后台进程,还会有延迟和强占带宽。

如果两台电脑同时开着同一个docx更麻烦。同步回来多出一个名字带(2)的副本,哪个是新的得自己判断。

最好的记录方式当然是git实在是小题大做。

但是既然可取,何不试试?
私有仓库,564个文件,711.1MiB,12个提交。

拦截大文件

由于GitHub的限制,单文件不可以超过100MB,所以做了一个钩子来避免上传超过100MB的文件。

1
/your/path/cloud-storage/.git/hooks/pre-commit
1
2
3
4
5
6
7
8
MAX_SIZE=$((100 * 1024 * 1024))   # 100MB
git diff --cached --name-only --diff-filter=ACM | while read f; do
size=$(stat -f%z "$f")
if [ "$size" -gt "$MAX_SIZE" ]; then
git restore --staged "$f" # 移出暂存区,不阻止提交
fi
done
exit 0

文件组成

类型 个数 体积
mp4 3 193.8 MiB
pdf 74 184.0 MiB
ppt / pptx 34 107.7 MiB
docx 63 98.8 MiB
doc 30 52.0 MiB
jpg 317 66.2 MiB
md 14 0.2 MiB