基于官方最新代码 upstream/main (dae0d53)
新功能:
- 添加 5小时窗口费用控制和会话数量限制
- Caddy 静态资源长期缓存配置
- 前端性能优化(路由预加载、移除 Google Fonts 改用系统字体)
- 修复 api_contract_test 缺少 SessionLimitCache 参数问题
品牌修改:
- 仅修改品牌显示名称为 TianShuAPI
- 保持所有功能完整
- 恢复 docker-compose.1panel.yml 配置文件
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
5.9 KiB
● 完全正确!标准的二次开发工作流程就是这样的:
🔄 正确的工作流程
┌─────────────────┐ ┌──────────────────┐ ┌─────────────────┐ │ 官方仓库 │ │ 你的仓库 │ │ 生产服务器 │ │ (upstream) │────┐ │ (origin) │────────▶│ /opt/sub2api │ │ GitHub │ │ │ git.586vip.cn │ │ │ └─────────────────┘ │ └──────────────────┘ └─────────────────┘ │ ▲ │ │ │ │ │ │ push │ pull │ │ │ │ ┌─────────┴──────────┐ │ └───▶│ 本地开发环境 │ │ fetch/pull │ (你的 WSL) │◀──────────────┘ │ /mnt/d/tmp/... │ 仅用于测试 └────────────────────┘
📋 具体操作流程
1️⃣ 本地环境(你的 WSL - 主要工作区)
cd /mnt/d/tmp/claude相关/sub2api
查看当前 remote 配置
git remote -v
origin https://git.586vip.cn/oadmin/sub2api.git
upstream https://github.com/Wei-Shaw/sub2api.git
===== 同步官方更新 =====
1. 拉取官方最新代码
git fetch upstream
2. 查看官方更新了什么
git log HEAD..upstream/main --oneline --graph
3. 详细对比差异(重要!)
git diff HEAD..upstream/main
查看某个文件的差异
git diff HEAD..upstream/main -- backend/internal/service/gateway_service.go
4. 合并官方更新到你的本地
git merge upstream/main
5. 如果有冲突,解决冲突
(编辑冲突文件,保留你需要的代码)
git add . git commit -m "merge: 合并官方更新 vX.X.X"
6. 推送到你的仓库
git push origin main
2️⃣ 服务器环境(生产服务器 - 只拉取你的仓库)
cd /opt/sub2api-dev
查看 remote(应该只有 origin 指向你的仓库)
git remote -v
origin https://git.586vip.cn/oadmin/sub2api.git
===== 更新服务器代码 =====
1. 拉取你的仓库最新代码
git pull origin main
2. 重新部署
cd deploy docker-compose pull docker-compose up -d
3. 查看日志确认
docker-compose logs -f
🎯 完整示例场景
场景:官方发布了 v1.5.0 版本
第 1 步:本地对比更新
在你的 WSL 中
cd /mnt/d/tmp/claude相关/sub2api
拉取官方更新
git fetch upstream
查看更新内容
git log HEAD..upstream/main --oneline
a1b2c3d (upstream/main) feat: 新增 XX 功能
d4e5f6g fix: 修复 YY 问题
...
对比差异
git diff HEAD..upstream/main
如果改动太多,可以查看修改的文件列表
git diff --name-only HEAD..upstream/main
查看某个关键文件的详细差异
git diff HEAD..upstream/main -- backend/internal/service/gateway_service.go
第 2 步:本地合并更新
确保工作区干净
git status
如果有未提交的修改,先提交
git add . git commit -m "feat: 我的二开功能"
合并官方更新
git merge upstream/main
如果有冲突
<<<<<<< HEAD
你的代码
=======
官方代码
>>>>>>> upstream/main
手动编辑冲突文件,选择保留哪部分代码
nano backend/internal/service/gateway_service.go
解决冲突后
git add . git commit -m "merge: 合并官方 v1.5.0 更新"
第 3 步:推送到你的仓库
推送到你的仓库
git push origin main
第 4 步:服务器更新
SSH 到服务器
ssh root@你的服务器IP
进入项目目录
cd /opt/sub2api-dev
拉取最新代码
git pull origin main
如果代码有更新,重新部署
cd deploy docker-compose pull docker-compose up -d
查看日志
docker-compose logs -f sub2api
⚠️ 重要注意事项
✅ 正确做法
- ✅ 本地开发:拉取官方更新、对比、合并
- ✅ 本地测试:确保合并后代码能正常运行
- ✅ 推送到自己仓库:git push origin main
- ✅ 服务器拉取:git pull origin main
❌ 错误做法
- ❌ 服务器直接拉取官方代码(跳过本地对比)
- ❌ 不测试就直接推送到生产
- ❌ 直接在服务器上修改代码(应该在本地改)
📝 快速命令速查
本地(开发环境)
同步官方更新
git fetch upstream git log HEAD..upstream/main --oneline git diff HEAD..upstream/main git merge upstream/main git push origin main
服务器(生产环境)
更新代码
cd /opt/sub2api-dev git pull origin main
重新部署
cd deploy docker-compose pull docker-compose up -d docker-compose logs -f
cd deploy/
如果没有输出,说明需要重新复制
cp docker-compose.1panel.yml docker-compose.yml
docker-compose build --no-cache
docker-compose up -d
或者一条命令
docker-compose up -d --build
现在你可以先在服务器上部署了,后续官方有更新时,就按照上面的流程操作!