为本地配置目录创建私人 GitHub 备份仓库
⚠️ 2026-08 现行纠正:下文保留的是 2026-04 的历史决策过程,不是可直接执行的恢复手册。 当前规则是“配置源码白名单 + deny-by-default
.gitignore”。.aws、.gcloud、OAuth、SSH、 凭据、session、logs、数据库、缓存和模型权重不进入 Git;私有仓库也不是秘密存储。 新主机请从恢复顺序开始。
💡 核心目标:多端同步 + 灾备。本地丢了能从 GitHub 恢复,多台机器共享同一份配置。
背景
本地 home 目录下有大量配置目录,承载着各工具的完整工作状态:
- Ollama 下载的模型列表
- TensorBoard 的运行记录
- Docker 的配置与镜像
- GitKraken 的仓库缓存
对于多机器工作场景(实验室台式机 + 宿舍笔记本),这些目录是核心数据的汇集点。
目录清单(17 个)
| 目录 | 说明 | 备份策略 |
|---|---|---|
| Zotero | 文献管理工具 | 完整备份 |
| .ollama | Ollama 模型管理(包含模型权重) | Release 托管 |
| anaconda3 | Conda 环境 | 完整备份 |
| .trae-cn | Trae IDE 配置 | 完整备份 |
| .keras | Keras 模型与训练状态 | Release 托管 |
| .docker | Docker Desktop 配置与镜像 | 配置文件备份 |
| .marscode | MarsCode 配置 | 完整备份 |
| .astropy | Astropy 配置 | 完整备份 |
| .aws | AWS CLI 配置 | 完整备份 |
| .gitkraken | GitKraken Git 客户端配置 | 完整备份 |
| .huggingface | Hugging Face 工具配置 | 完整备份 |
| .tensorboard | TensorBoard 日志 | 完整备份 |
| .polyaxon | Polyaxon MLOps 平台配置 | 完整备份 |
| .gcloud | Google Cloud CLI 配置 | 完整备份 |
| .azure | Azure CLI 配置 | 完整备份 |
| .kube | Kubernetes 配置 | 完整备份 |
| .sourcetree | SourceTree Git 客户端配置 | 完整备份 |
关键决策
决策 1:备份策略 — 完整备份 + 大文件进 Release
每个目录内容都比较复杂,敏感信息少(大多是工具配置),适合完整推送 Git。但 .ollama、.keras 等目录通常包含大文件(模型权重、训练 checkpoint),不适合放进 Git 仓库。
最终选择:全部文件都推送 git,大文件通过 GitHub Releases 单独管理。
- 优点:保持目录结构完整性
- 优点:避免 Git LFS 配额限制(免费 1GB/每月)
- 优点:大文件独立管理,下载方便
决策 2:仓库命名 — . 前缀保留
本地目录带 . 前缀(如 .ollama),GitHub 仓库也保持相同命名(如 mykcs/.ollama)。已有的 .claude 私有仓库提供了先例。
决策 3:大文件管理 — 不使用 Git LFS
Git LFS 有免费配额限制(1GB/每月),超出后收费。大文件(模型权重、数据集等)改用 GitHub Releases 管理。
历史操作流程(不要直接运行)
Step 1:修正已创建的错误命名仓库
由于 gh repo create .astropy 默认把仓库名从 .astropy 变成 astropy(去掉点),已创建的 4 个仓库需要删掉重建:
# 删除错误命名的仓库
gh repo delete astropy --yes
gh repo delete docker-config --yes
gh repo delete marscode --yes
gh repo delete gitkraken --yes
# 重建为正确命名
gh repo create .astropy --private --source /Users/myk/.astropy --push
gh repo create .docker --private --source /Users/myk/.docker --push
gh repo create .marscode --private --source /Users/myk/.marscode --push
gh repo create .gitkraken --private --source /Users/myk/.gitkraken --push
Step 2:创建剩余 7 个新仓库
gh repo create .huggingface --private --source /Users/myk/.huggingface --push
gh repo create .tensorboard --private --source /Users/myk/.tensorboard --push
gh repo create .polyaxon --private --source /Users/myk/.polyaxon --push
gh repo create .gcloud --private --source /Users/myk/.gcloud --push
gh repo create .azure --private --source /Users/myk/.azure --push
gh repo create .kube --private --source /Users/myk/.kube --push
gh repo create .sourcetree --private --source /Users/myk/.sourcetree --push
仓库命名对应表
| 本地目录 | GitHub 仓库 |
|---|---|
| .ollama | github.com/mykcs/.ollama |
| .astropy | github.com/mykcs/.astropy |
| .docker | github.com/mykcs/.docker |
| .marscode | github.com/mykcs/.marscode |
| .gitkraken | github.com/mykcs/.gitkraken |
| .huggingface | github.com/mykcs/.huggingface |
| .tensorboard | github.com/mykcs/.tensorboard |
| .polyaxon | github.com/mykcs/.polyaxon |
| .gcloud | github.com/mykcs/.gcloud |
| .azure | github.com/mykcs/.azure |
| .kube | github.com/mykcs/.kube |
| .sourcetree | github.com/mykcs/.sourcetree |
| anaconda3 | github.com/mykcs/anaconda3 |
| .aws | github.com/mykcs/.aws |
| Zotero | github.com/mykcs/Zotero |
| .trae-cn | github.com/mykcs/.trae-cn |
| .keras | github.com/mykcs/.keras |
下一步计划
- 完成所有 17 个仓库的创建与推送
- 为每个仓库编写
.gitignore,排除临时文件 - 对包含大文件的仓库(.ollama、.keras),补充 GitHub Releases 上传脚本
- 验证多端同步:从另一台机器拉取仓库,确认配置能正确恢复