拉代码 / 切分支 · 手册
工作台对 fanzy-web 只有读权限:拉取最新代码、查看分支、选择需求基于哪个分支。不能提交,也不能推送。
一次性配置(管理员做一次)
下面是简要步骤;每一步点哪里、遇到问题怎么办,见 配置获取指南 · GitHub。
1. 生成只读 key(研发负责人在自己电脑上操作)
ssh-keygen -t ed25519 -C "fanzy-product-readonly" -f github_readonly -N ""
生成两个文件:github_readonly(私钥,给产品)和 github_readonly.pub(公钥,加到 GitHub)。
2. 把公钥加到仓库 Deploy keys
- 打开 GitHub 仓库
novusbase/ifanzy-web→ Settings → Deploy keys → Add deploy key - Title 填「fanzy-product-readonly」,Key 粘贴
github_readonly.pub的内容 - 不要勾选 Allow write access(这样即使 key 泄露也只能读)
- 保存
3. 交给产品
把 github_readonly 私钥文件交给产品,放到工作台 git/keys/github_readonly。git/github.json 保持默认即可:
{
"repo": "git@github.com:novusbase/ifanzy-web.git",
"defaultBranch": "master",
"sshKeyPath": "git/keys/github_readonly"
}
| 参数 | 含义 |
|---|---|
repo | fanzy-web 仓库地址 |
defaultBranch | 默认主分支:开新需求时不选分支就用它 |
sshKeyPath | 只读 key 文件位置;留空表示用电脑默认的 ssh(只适合研发电脑) |
日常使用(对 AI 说)
| 你说 | AI 做 |
|---|---|
| 拉一下最新代码,看看有哪些分支 | 拉取远端,列出最近活跃的分支(更新时间、更新人),标出默认分支 |
| 这个需求基于 3.10.3/dev 做 | 启动流程第 3 步:让当前需求的 demo 基于该分支 |
| 把这个需求换到最新的 master 上 | 保存当前改动 → 换基线 → 重新套用改动(有冲突会告诉你) |
| 这个需求是基于哪个版本做的 | 读取版本记录,告诉你基线分支和提交 |
原理(了解即可)
- 代码拉到
project/ifanzy-web/,推送地址已被改成无效值,并装了拦截提交的钩子 - 每个需求在
project/worktrees/<版本包>/有一份独立工作区,互不影响,切换需求不会丢改动 - demo 的改动保存为
demo/<版本包>/source.patch,换电脑也能恢复
常见报错
| 报错 | 原因 | 处理 |
|---|---|---|
| Permission denied (publickey) | key 不对,或公钥没加到 Deploy keys | 找管理员核对第 2 步 |
| 找不到 GitHub 只读 key | key 文件没放对位置或文件名不对 | 确认文件是 git/keys/github_readonly(没有扩展名) |
| UNPROTECTED PRIVATE KEY FILE | key 文件权限太宽 | 说「帮我自检」,AI 会自动修正 |
| 远端不存在分支 | 分支名写错或已被删除 | 让 AI 重新列出分支 |
| Could not resolve hostname github.com | 网络问题 | 检查网络 / 代理后重试 |