服务器代码备份实战:只用 GitHub 私有仓库(隐私脱敏版)
·
服务器代码备份实战:只用 GitHub 私有仓库(隐私脱敏版)
关键词:Linux 服务器、GitHub 私有仓库、代码备份、训练项目、避坑
说明:本文已对用户名、服务器名、真实目录等信息做脱敏处理,可直接公开发布。
1. 背景与问题
很多训练项目都会遇到同一个问题:
- 代码本身体积很小
- 训练产物(checkpoint、日志、数据集)体积巨大
- 如果把整个项目目录直接备份到网盘,免费额度很快耗尽
我的项目结构中,最大头是:
workspace/output/(大量checkpoint*.pth)workspace/data/workspace/logs/
结论:“全量目录备份”不合理,应该“代码与大文件分离”。
2. 最终方案(一句话)
只用 GitHub 私有仓库备份源码与配置,不上传训练大文件。
- 主分支:
main - 日常操作:
add -> commit -> push - 通过
.gitignore严格排除大文件目录与模型权重
3. 第一步:创建私有仓库
在 GitHub 新建仓库时:
- 可见性选择 Private
- 仓库可命名为:
project-code-backup(示例) - 不强制初始化 README(已有本地项目可直接推送)
4. 第二步:配置 SSH(推荐)
先在服务器测试:
ssh -T git@github.com
如果返回“认证成功(但不提供 shell)”,说明 SSH 配置可用。
若未配置,流程如下:
- 生成密钥:
ssh-keygen -t ed25519 -C "your_email@example.com" - 复制公钥:
cat ~/.ssh/id_ed25519.pub - GitHub → Settings → SSH and GPG keys → New SSH key
- 再次测试
ssh -T git@github.com
5. 第三步:先写好 .gitignore(核心)
示例(可直接用):
# 训练输出
workspace/output/
# 日志
workspace/logs/
# 数据集
workspace/data/
# 模型权重(兜底)
*.pt
*.pth
*.ckpt
*.onnx
*.safetensors
# Python 缓存
__pycache__/
*.pyc
*.pyo
*.pyd
# 编辑器
.vscode/
.idea/
# 临时文件
*.tmp
*.swp
这一步非常关键。
一旦把大文件提交进 Git 历史,后续清理会很麻烦。
6. 第四步:首次绑定并推送(模板命令)
cd /path/to/your/project
git config --global user.name "your_github_name"
git config --global user.email "your_email@example.com"
git branch -M main
git remote remove origin 2>/dev/null || true
git remote add origin git@github.com:<YOUR_GITHUB_USERNAME>/<YOUR_PRIVATE_REPO>.git
git add .
git commit -m "init: source backup"
git push -u origin main
若提示 nothing to commit,直接:
git push -u origin main
7. 日常备份工作流(极简)
每次开发结束执行:
cd /path/to/your/project
git status
git add .
git commit -m "daily update: xxx"
git push
如果不想复杂化流程,长期只用 main 就可以。
8. 常见问题
Q1:Permission denied (publickey)
SSH key 未配置好或未加载,重新 ssh-add 并测试 ssh -T。
Q2:误提交了大文件目录怎么办?
先取消追踪再提交:
git rm -r --cached workspace/output workspace/data workspace/logs
git add .
git commit -m "remove large artifacts from tracking"
git push
Q3:为什么不直接备份整个项目?
因为训练产物体积太大、变化频繁,成本高且效率低。
代码与配置才是“可持续备份”的核心。
9. 实践建议(给未来的自己)
- 先保证“代码可追溯”,再考虑“大文件归档”
- 仓库保持干净:只放源码、配置、脚本、说明
- checkpoint 归档后续单独做(例如只保留
best/last)
10. 总结
对于训练型项目,最稳妥的低成本备份路径是:
- GitHub 私有仓库 = 代码主备份
- 大权重/数据集 = 独立存储策略(后续再做)
这样既能立即落地,又不会被海量文件拖垮。
如果你也有类似场景,建议先从这套“源码优先备份”开始,再逐步升级到完整归档方案。
更多推荐

所有评论(0)