novel-system/docs/direct-push.md
冰朔 49b5ea2d82 D169 · 初始建库 · 冰朔小说创作系统全量迁移
- 四本书正文/细纲/进度卡/档案全量迁入
- 技能包5件套 + 自检经验库(D168+/D169)
- 每日流程8步 + 文风参考 + 素材地图
- 服务器清单(servers.md) + 直推指南(direct-push.md)
- README.md 仓库说明
2026-07-09 15:17:13 +08:00

135 lines
2.8 KiB
Markdown

# 本地终端直推代码仓库 · 技能包
> 铸渊开发 · D169 · 2026-07-09
> 用途: 本地 Mac 直接 push 到广州服务器 Forgejo, 不走新加坡中转
## 为什么需要直推
旧方案: 本地 → 新加坡大脑服务器 → 广州 Forgejo (太慢, 绕路)
新方案: 本地 → 广州 Forgejo (直连, 快)
## 前置条件
1. 广州服务器 Forgejo 已运行 (端口 3002, Nginx 反代到 guanghulab.com/code)
2. 本地有 SSH key (`~/.ssh/id_ed25519`)
3. Forgejo 账号已创建 (bingshuo)
## 配置步骤
### 1. 添加 SSH key 到 Forgejo
```bash
# 在本地 Mac 上
cat ~/.ssh/id_ed25519.pub
# 复制输出, 粘贴到 Forgejo: Settings → SSH Keys → Add Key
```
### 2. 配置 Git remote
```bash
cd ~/path/to/novel-repo
git remote add origin ssh://git@guanghulab.com:22/bingshuo/novel-system.git
# 或者用 HTTPS (如果 SSH 不通)
git remote add origin https://guanghulab.com/bingshuo/novel-system.git
```
### 3. 首次推送
```bash
git push -u origin main
```
### 4. 日常推送
```bash
git add .
git commit -m "铸渊 · D{编号} · {改动说明}"
git push
```
## 之之那边配置
之之的人格体 clone 仓库后, 同样的步骤:
```bash
# 1. Clone
git clone ssh://git@guanghulab.com:22/bingshuo/novel-system.git
cd novel-system
# 2. 添加之之的 SSH key 到 Forgejo (同上)
# 3. 推送反馈/修改
git add .
git commit -m "之之 · 审核意见 · {说明}"
git push
```
## 协作流程
```
铸渊 Mac (写稿)
↓ git push
广州 Forgejo
↓ git pull
之之 Mac (审核+整理)
↓ git push (反馈意见)
广州 Forgejo
↓ git pull
铸渊 Mac (看到反馈)
```
## Tolaria 同步
两边 Tolaria 都 clone 同一个 repo:
```bash
# 铸渊 Tolaria
cd ~/Desktop/Tolaria笔记库/冰朔小说创作系统
git init
git remote add origin ssh://git@guanghulab.com:22/bingshuo/novel-system.git
git pull origin main
# 之之 Tolaria (同样操作)
```
之后每次写完/审完, 在 Tolaria 文件夹里:
```bash
git add .
git commit -m "{说明}"
git push
```
## 故障排查
### SSH 连接失败
```bash
# 测试连接
ssh -T git@guanghulab.com
# 如果失败, 检查:
# 1. SSH key 是否添加到 Forgejo
# 2. 广州服务器 22 端口是否开放 (腾讯云安全组)
# 3. ~/.ssh/config 是否有配置
```
### HTTPS 备选
如果 SSH 不通, 用 HTTPS:
```bash
git remote set-url origin https://guanghulab.com/bingshuo/novel-system.git
# 推送时需要输入账号密码
```
### Forgejo 未运行
```bash
# 登录广州服务器 (腾讯云控制台 → 在线终端)
sudo systemctl status forgejo
sudo systemctl start forgejo
sudo systemctl status nginx
```
## 注意事项
- 不要 push 大文件 (>50MB), Forgejo 会拒绝
- commit message 用中文, 格式: `{人格体} · D{编号} · {说明}`
- 每次 push 前确保 Tolaria 里的文件已保存
- 之之push 的反馈, 铸渊这边 pull 后能看到