备份推送到 GitHub 教程

把小手机备份放到你自己的私人仓库里,需要时再拉回来

icon 先看这三件事

GitHub 可以理解成一个网盘。小手机会把和「导出备份」相同的那一份文件,推到你自己的仓库里,文件名是 y4t-backup.json。这不是把备份推进做小手机的那个公开项目。

关着的时候,不会自己推。

小手机关掉,或浏览器把页面冻住之后,定时不会在后台自己跑。手机浏览器没有可靠的「到点就推」能力。所以这是「开着的时候自动推」,再加一个手动「现在推送」。

玩完一次、要关页面之前,点一次「现在推送」最稳妥。「导出备份」把文件下载到自己手机上,仍然可以一起用。

仓库必须是私人的。

备份里有接口密钥、聊天和人设,也有语音密钥、面具、世界书和记忆。公开仓库等于把这些内容发到网上。谁拿到链接,谁都能看见。

小手机如果发现仓库是公开的,会拒绝推送,并告诉你先改成私人。它不会把这份备份发到公开仓库里。

一份备份太大时,会明确告诉你失败。

GitHub 单文件上限大约 100MB。表情和图片很多时,一份备份可能推不上去。那时小手机会在备份那一栏写明失败,不会假装已经备份了。

失败之后,请改用「导出备份」把文件存到自己找得到的地方,或先删掉一些不再用的表情和图片,再点「现在推送」。

icon 第一步:注册 GitHub

建议用电脑浏览器操作。手机上请把浏览器切到「桌面版网站」,否则按钮会缩在菜单里,不好找。GitHub 的网页是英文,下面每个按钮都写了中文意思。
  1. 打开注册页

    如果已经有账号,直接去 https://github.com/login 登录,然后跳到第二步。

  2. 填写邮箱

    用一个你收得到信的邮箱。后面验证码会发到这里。填完点 Continue(继续)。

  3. 设置密码

    密码至少 8 位,里面要有数字和小写字母。这个密码是登录 GitHub 用的,和下面的「令牌」不是同一个东西。点 Continue。

  4. 取一个用户名

    这一格英文叫 Username。它会变成仓库名的前半段。只能用英文、数字和短横线,不能有空格和中文。

    例如用户名取 xiaotao。请把它记下来。点 Continue。

  5. 收验证码

    去邮箱里找 GitHub 发来的数字,填进网页。有时还要做一个小拼图,按提示点即可。

  6. 跳过问卷

    注册成功后,GitHub 可能问你是学生还是开发者、想做什么。这些和备份无关。看到 Skip(跳过)或 Skip personalization 就点掉。

这一步要记住:
  • 登录用的邮箱和密码
  • 用户名,例如 xiaotao

icon 第二步:建一个私人仓库

仓库就是放备份的那个格子。免费账号可以建私人仓库,不用付钱。

  1. 打开新建页面

    也可以点网页右上角的 +,再点 New repository(新建仓库)。

  2. 仓库名字用英文

    Repository name 填 y4t-backup。不要空格,不要中文。这个名字就是仓库名的后半段。

    下面的 Description(描述)可以空着。

  3. 一定选 Private

    名字下面有两个选项:

    • Public:公开。任何人都能看见。不要选。
    • Private:私人。只有你登录之后能看见。选这个。
  4. 其余可以不勾

    Add a README 勾不勾都行。小手机稍后会自己放上 y4t-backup.json,不冲突。

  5. 创建

    点绿色的 Create repository(创建仓库)。

icon 第三步:在仓库设置里确认它是私人的

建好之后先核对一次。页面左上角、仓库名字旁边,应该有一个 Private 小标签。看到的是 Public,就按下面改回来。

  1. 进入仓库设置

    打开这个仓库,点顶部的 Settings(设置)。这是仓库自己的设置,不是右上角头像里的账号设置。

  2. 滚到页面最下面

    左侧如果还停在 General(常规)就对了。一直往下,找到 Danger Zone(危险区域)。

  3. 改成私人

    点 Change repository visibility(更改仓库可见性),再点 Change to private(改为私人)。

    GitHub 会让你输入仓库全名来确认,例如 xiaotao/y4t-backup。输入后点确认。改完,名字旁边的标签会变成 Private。

不要把备份放进别的公开仓库。

尤其不要放进 yore-for-two 那个用来发小手机程序的仓库。那个仓库是公开的。请只用你刚刚新建的这个私人仓库。

icon 第四步:抄下仓库名

小手机「仓库」那一格要的是两段,中间一个斜杠:用户名/仓库名。

  1. 看浏览器地址栏

    打开你的仓库时,地址类似:

    github.com/ 后面的整段就是要填的内容:xiaotao/y4t-backup。

  2. 也可以看仓库标题

    仓库页面左上角会写成 xiaotao / y4t-backup。斜杠前面是用户名,后面是仓库名。把中间的空格去掉,连成 xiaotao/y4t-backup。

  3. 填进小手机

    桌面 → 设置 → 备份 → 仓库。填 xiaotao/y4t-backup。把整段地址贴进去也可以,小手机会自己收成这个格式。

对照一下,避免抄错:
  • 要填:xiaotao/y4t-backup
  • 用户名换成你自己的。仓库名如果没改,后半段就是 y4t-backup
  • 不要只填仓库名,也不要填中文

icon 第五步:获取令牌

令牌是一串专门给小手机用的通行证,样子通常是 github_pat_ 开头的一长串。它不是登录密码。小手机用它来读写你那个私人仓库里的备份文件。

令牌只生成时看得到一次。

复制下来立刻贴进小手机。关掉那个页面之后,GitHub 不会再把原文显示给你。忘了就重新生成一枚,旧的可以删掉。

不要把令牌截图发到群里,也不要写进公开笔记。令牌只留在这台小手机里,不会写进备份文件。

下面这个链接会预先写好令牌名字,并把「文件内容」权限设成可读写。仓库范围仍然要你自己选,只勾刚刚建的那一个私人仓库。
  1. 如果链接打不开,就手动走进去

    点右上角头像 → Settings(账号设置)。

    左边栏拉到最下面,点 Developer settings(开发者设置)。

    点 Personal access tokens(个人访问令牌)→ Fine-grained tokens(细粒度令牌)→ Generate new token(生成新令牌)。

  2. 看名字和有效期

    Token name 可以就用 y4t-backup。

    Expiration(有效期)建议先选 90 天。到期后这枚令牌会失效,备份会提示「令牌不对,或已经失效」,那时再来生成一枚新的填进去。页面如果允许 No expiration(永不过期),也可以选,但更要保管好,不要外传。

  3. 资源主人选你自己

    Resource owner 选你的用户名。不要选组织,除非你很清楚那个组织是什么。

  4. 只允许这一个仓库

    Repository access(仓库访问范围)选 Only select repositories(只选择某些仓库)。

    在出现的下拉框里,只勾选 y4t-backup。不要选 All repositories(全部仓库)。

  5. 权限只开文件读写

    展开 Permissions(权限)里的 Repository permissions(仓库权限)。

    找到 Contents(内容),改成 Read and write(读取和写入)。

    其他权限保持 No access(无权限)。Contents 就够小手机推送和拉回那一个文件。

  6. 生成并复制

    滑到页面底部,点绿色的 Generate token。

    下一页会用绿色框显示令牌全文。点复制。它很长,开头一般是 github_pat_。整段都要,前后不要多出空格。

这一步要带走的只有一串令牌。

贴进小手机之后,GitHub 那个页面可以关掉。以后在 Fine-grained tokens 列表里能看到名字 y4t-backup,但看不到令牌原文。

icon 第六步:填进小手机

  1. 打开备份

    小手机桌面 → 设置 → 往下找到「备份」,点开。

  2. 填写两项
    • 仓库:用户名/y4t-backup
    • 令牌:刚才复制的整段 github_pat_……

    令牌格子会显示成圆点,这是正常的。

  3. 先手动推一次

    点 现在推送。成功时会提示「已推到你的 GitHub」,下面一行会出现「上次推送」和日期。

    回到 GitHub 那个仓库,刷新页面,应该能看到文件 y4t-backup.json。看到这个文件,才算第一次备份落上了。

  4. 再决定要不要自动

    间隔可以选每 1 小时、每 6 小时、每 12 小时或每 24 小时。默认是 6 小时。

    勾上 开着时自动推送。内容和上次一样时,小手机会跳过,不会重复传一份。

icon 定时到底会不会自己跑

小手机是开在浏览器里的一个页面。自动推送靠的是这个页面自己的计时,不是手机系统的闹钟,也不是 GitHub 那边到点来取。

这些情况,定时是停的

  • 你把小手机关掉,回到了桌面其他应用
  • 你关掉了浏览器,或关掉了这个标签
  • 手机为了省电,把后台网页冻住、清掉
  • 浏览器把这个页面休眠了。看起来标签还在,脚本其实已经不走了

手机浏览器没有可靠的「到点就推」能力。到了你设的那个小时,如果页面没开着,它不会自己醒来,也不会补推你离开的那几个小时。

这些情况,才会自动推

  • 小手机这个页面正开着
  • 浏览器没有把它冻住
  • 你勾了「开着时自动推送」,仓库和令牌都填好了
  • 距离上次成功推送,已经过了你选的间隔

所以请把它理解成:开着的时候自动推。想离开前留一份,就点 现在推送。手动这一下不看间隔,填好仓库和令牌就能推。

自动推送失败后,不会每一分钟都再撞一次。过一会儿才会再试。你不想等,直接点「现在推送」。失败的原因会留在按钮上面那一行,成功之前不会把那一行写成已经推送。

icon 需要的时候,怎么拉回来

  1. 在这台或另一台小手机上填同一个仓库和令牌

    换手机、清掉浏览器数据之后,仓库名可以照旧填。令牌如果还没过期,也可以再贴一次;过期了就按第五步重新生成。

  2. 点「从 GitHub 拉回」

    小手机会先把 y4t-backup.json 取下来,弹出确认,告诉你这份备份的时间和里面有多少角色、消息。

  3. 看清楚再覆盖

    点「覆盖恢复」之后,才会换成备份里的聊天、人设和设置,这一步不能撤销。点「取消」则这台手机保持原样。

你也可以在 GitHub 仓库里自己点开 y4t-backup.json,用 Download 下载,再用小手机的「从文件恢复」。

icon 常见问题

提示「这个仓库是公开的」

回到第三步,把仓库改成 Private,然后再点「现在推送」。

提示「令牌不对,或已经失效」

多半是复制少了一截、前后有空格,或者到期了。按第五步重新生成一枚,整段贴进「令牌」,再推一次。

提示「找不到这个仓库」

仓库那一格要是 用户名/仓库名。令牌的仓库范围里,要勾上这一个私人仓库。只勾了别的仓库,或选成了公开仓库,也会找不到。

提示「这个令牌没有读写该仓库文件的权限」

回到令牌页面重新生成。Repository access 选 Only select repositories,并勾上你的备份仓库。Contents 选 Read and write。

提示备份超过上限,推不上去

这是失败,不是已经备份好了。GitHub 单文件大约 100MB。表情、聊天图片很多时就会超。请点「导出备份」把文件另存,或删掉一些不再用的表情和图片后再推。

我勾了自动推送,第二天打开发现还是昨天的

夜里页面关着或被冻住时,定时不会跑。打开之后,如果已经超过你设的间隔,小手机会再推一次。离开前想留档,请点「现在推送」。

令牌会跟着备份一起被传上去吗?

不会。令牌只留在这台手机的浏览器里。备份文件里有聊天、人设和接口密钥,所以仓库仍然必须是私人的。

Fine-grained 那一页实在找不到 Contents

也可以改用旧式令牌:Developer settings → Personal access tokens → Tokens (classic) → Generate new token (classic)。勾选名为 repo 的那一项,生成后把 ghp_ 开头的那串贴进小手机。

旧式令牌的 repo 能读写你账号下全部私人仓库,范围比细粒度令牌大。能用第五步的做法时,优先用第五步。

icon 快速回顾

按这个顺序做一遍:
  1. 在 GitHub 注册,记住用户名
  2. 新建仓库,名字用 y4t-backup,选 Private
  3. 在仓库 Settings 里再确认一次,标签是 Private
  4. 仓库名填成 用户名/y4t-backup
  5. 做一枚只含这个仓库、Contents 为读写的令牌,贴进小手机
  6. 点「现在推送」,到 GitHub 上看见 y4t-backup.json
  7. 需要自动时再勾「开着时自动推送」。页面关着就不会自己推