跳到正文
minimachine.
← 学习路径
第 7 步 · 基础搭建 进阶 · 16 分钟

🐙Git、GitHub 与备份

您的代码值得一张安全网。用 Git 给一切做版本管理,用 GitHub 把它存到别处并分享出去,再加一套真正的备份策略,让您永远不丢东西, 哪怕机器烧了。


您刚装好一个会飞快写代码的 agent。在它碰任何要紧东西之前,我们先把网铺好:Git,让每一次改动都可回退;以及 GitHub,让您的工作活在这台小盒子之外的地方。因为一台迷你 PC 可能会烧掉、被偷,或者吃下一个多余的 rm。而您的代码,绝不该跟着一起消失。

为什么这事不容商量(尤其是有了 agent)

一个代码 agent 跑得快,而且很自信。多数时候这很棒;偶尔它会弄坏点什么。Git 把这变成一件无关紧要的小事:

  • 每一次提交都是一个还原点。 agent 把一切都搞砸了?git restoregit reset,一秒钟您就回到了之前的状态。这是终极的「撤销」。
  • 您能看清究竟改了什么。 git diff 一行一行地告诉您 agent 动了哪里。您在点头前先审一遍, 这就是这门手艺的核心(见 保护访问安全)。
  • GitHub 让您的代码远离灾难。 硬盘坏了、被偷了、误操作:您的代码在 GitHub 上,完好无损。您能在任何一台机器上用一条命令把它取回来。
  • 而且您可以分享。 给同事开权限、多人协作、开源出去:全都经由 GitHub。

在机器上配置 Git

三行,一劳永逸。Git 需要知道您是谁(这会签署您的提交):

git config --global user.name "您的姓名"
git config --global user.email "[email protected]"
# 几个明智的默认值
git config --global init.defaultBranch main   # 默认分支叫 "main"
git config --global pull.rebase false          # 可预期的 pull 行为

让机器获得访问 GitHub 的权限

您的机器得向 GitHub 证明它有权推送。两条路;选您顺眼的那条。

最简单的:GitHub CLI(gh)

官方工具 gh 替您处理认证,连令牌也一起搞定。

# 安装 gh(Ubuntu 官方方法)
sudo apt install -y gh
# 把机器连到您的账号, 回答问题,它会打开浏览器
gh auth login

选「GitHub.com」,再选「SSH」作为协议:gh 会自动生成并安装密钥。完成后,您的机器就能克隆、推送、创建仓库了。这是我推荐的入门选项。

手动选项:一把专属于这台机器的 SSH 密钥

如果您想完全掌控,就创建一把专属于这台迷你 PC 的 SSH 密钥(一机一钥更稳妥):

ssh-keygen -t ed25519 -C "mini-pc-github"
cat ~/.ssh/id_ed25519.pub   # 复制显示出来的内容

钥粘到 GitHub → SettingsSSH and GPG keysNew SSH key。然后验证:

ssh -T [email protected]   # 应该用您的 GitHub 用户名跟您打招呼

您的第一个仓库,以及用它的 agent

cd ~/mon-projet
git init
# 那个告诉 git 要忽略什么的文件, 至关重要
cat > .gitignore <<'EOF'
node_modules/
.env
*.log
dist/
EOF
git add -A
git commit -m "Premier jet"
# 创建远端仓库并推送(用 gh,一行就够)
gh repo create mon-projet --private --source=. --push

到位之后,让您的 agent 替您管 git:「定期提交,写清晰的提交信息」「为这个功能创建一个分支」「开一个 pull request」。您甚至可以把它写进您的 记忆文件「每一步验证通过后提交,使用约定式的提交信息,未经我同意不要推到 main。」

备份:3-2-1 法则

GitHub 保住了您的代码。但您的迷你 PC 里还装着许多不在 git 里的东西:您的 .env 文件、您的数据库、生成的数据、系统配置。对这些,我们套用备份的黄金法则:

决定备份什么

  • 代码 → 已经在 GitHub 上,无需多做。
  • 密钥.env、各种 key)→ 加密备份,绝不明文。
  • 真正要紧的数据(数据库、生成的文件、自己写的配置)。
  • 不要备份 Ollama 模型和 node_modules:它们能重新下载,没必要备份。

选一个工具和一个目的地

restic 是理想的工具:加密、去重、增量备份。您可以把它发往一个 NAS、另一块硬盘,或者云存储。

sudo apt install -y restic
# 初始化一个备份仓库(例如:发往挂载的 NAS)
restic -r /mnt/nas/backups init
# 第一次备份
restic -r /mnt/nas/backups backup ~/projets ~/configs

如果想瞄准云存储(客户端侧加密),rclone 是一个很好的替代方案。

自动化, 手动备份迟早会被忘掉

安排一个每日的 systemd 定时器cron 任务。您的 agent 两分钟就能写好:让它「创建一个 systemd 服务,每天凌晨 3 点跑我的 restic 备份」。

测试您的恢复

一个您从未恢复过的备份不是备份, 那是一种指望。至少做一次这个练习:restic -r /mnt/nas/backups restore latest --target /tmp/test-restore,然后确认您的文件确实都在。