Files
sub2api/GIT_WORKFLOW.md
huangzhenpc e4db851b31
Some checks failed
CI / test (push) Has been cancelled
CI / golangci-lint (push) Has been cancelled
feat: 添加二次开发部署配置和文档
- 添加双 Git remote 配置指南 (GIT_GUIDE.md, GIT_WORKFLOW.md)
- 添加 1Panel 环境部署配置 (docker-compose.1panel.yml, .env.1panel)
- 添加自动化部署脚本 (deploy-complete.sh, deploy-dev.sh, deploy.sh)
- 添加部署说明文档 (README_DEPLOY.md)
- 配置端口 2080 映射
- 支持连接现有 1Panel Redis (1Panel-redis-S1KH)
2026-01-04 10:25:36 +08:00

277 lines
5.8 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Sub2API 二次开发指南
## 🔧 Git 工作流程
### 初始设置
```bash
# 1. 克隆官方仓库
git clone https://github.com/Wei-Shaw/sub2api.git sub2api-dev
cd sub2api-dev
# 2. 配置远程仓库
git remote rename origin upstream # 官方仓库改名为 upstream
git remote add origin https://your-git.com/your-repo.git # 添加你的仓库
# 3. 创建开发分支
git checkout -b dev
# 4. 推送到你的仓库
git push -u origin dev
```
### 远程仓库配置结果
```bash
git remote -v
# upstream https://github.com/Wei-Shaw/sub2api.git (fetch)
# upstream https://github.com/Wei-Shaw/sub2api.git (push)
# origin https://your-git.com/your-repo.git (fetch)
# origin https://your-git.com/your-repo.git (push)
```
---
## 🔄 同步官方更新
### 方式 1查看官方更新
```bash
# 拉取官方最新代码
git fetch upstream
# 查看官方更新内容
git log HEAD..upstream/main --oneline
# 查看详细差异
git diff HEAD..upstream/main
# 查看某个文件的差异
git diff HEAD..upstream/main -- backend/internal/service/gateway_service.go
```
### 方式 2合并官方更新
```bash
# 确保工作区干净
git status
# 提交你的修改
git add .
git commit -m "feat: 我的二开功能"
# 拉取并合并官方更新
git fetch upstream
git merge upstream/main
# 如果有冲突,解决后:
git add .
git commit -m "merge: 合并官方更新"
# 推送到你的仓库
git push origin dev
```
### 方式 3使用 Rebase更清晰的历史
```bash
# 拉取官方更新
git fetch upstream
# 将你的提交重放到官方最新代码之上
git rebase upstream/main
# 如果有冲突,解决后:
git add .
git rebase --continue
# 强制推送到你的仓库注意rebase 会改变历史)
git push -f origin dev
```
---
## 📦 部署流程
### 生产环境部署
```bash
cd /opt/sub2api-dev/deploy
# 运行自动部署脚本
chmod +x deploy-dev.sh
bash deploy-dev.sh
```
### 手动部署
```bash
# 1. 进入部署目录
cd /opt/sub2api-dev/deploy
# 2. 创建配置(如果没有)
cp docker-compose.yml docker-compose.prod.yml
cp .env.example .env
# 3. 修改配置
nano docker-compose.prod.yml # 改端口为 2080配置 Redis
nano .env # 设置密码等
# 4. 启动服务
docker-compose -f docker-compose.prod.yml pull
docker-compose -f docker-compose.prod.yml up -d
# 5. 查看日志
docker-compose -f docker-compose.prod.yml logs -f
```
---
## 🛠️ 开发建议
### 目录结构
```
sub2api-dev/
├── .git/ # Git 仓库
├── backend/ # 后端代码Go
│ ├── cmd/server/ # 入口
│ ├── internal/ # 核心逻辑
│ └── ent/ # 数据模型
├── frontend/ # 前端代码Vue
│ └── src/
└── deploy/ # 部署配置
├── docker-compose.prod.yml
├── .env
└── deploy-dev.sh
```
### 常见二开场景
#### 1. 修改后端逻辑
```bash
# 修改代码
vim backend/internal/service/gateway_service.go
# 提交
git add backend/
git commit -m "feat: 修改网关逻辑"
# 重新构建镜像(如果需要)
cd backend
docker build -t sub2api:custom .
# 修改 docker-compose.prod.yml 使用自定义镜像
# image: sub2api:custom
# 重启服务
cd ../deploy
docker-compose -f docker-compose.prod.yml up -d
```
#### 2. 修改前端界面
```bash
# 修改代码
vim frontend/src/views/HomeView.vue
# 本地测试
cd frontend
npm install
npm run dev
# 构建
npm run build
# 提交
git add frontend/
git commit -m "feat: 修改首页界面"
# 后端重新构建(前端会被嵌入)
cd ../backend
go build -tags embed -o sub2api ./cmd/server
```
#### 3. 添加新功能
```bash
# 创建功能分支
git checkout -b feature/new-feature
# 开发...
# 提交
git add .
git commit -m "feat: 添加新功能"
# 合并到开发分支
git checkout dev
git merge feature/new-feature
# 推送
git push origin dev
```
---
## 🔍 对比工具
### 使用 VS Code 对比
```bash
# 安装 VS Code Remote SSH 插件
# 然后在 VS Code 中:
# 1. 连接到服务器
# 2. 打开 /opt/sub2api-dev
# 3. 使用 Git 功能对比差异
```
### 命令行对比
```bash
# 对比某个文件
git diff upstream/main -- backend/internal/service/gateway_service.go
# 对比某个目录
git diff upstream/main -- backend/internal/service/
# 生成对比报告
git diff upstream/main > changes.patch
# 查看修改的文件列表
git diff --name-only upstream/main
```
---
## ⚠️ 注意事项
1. **定期同步**: 建议每周拉取一次官方更新
2. **冲突处理**: 遇到冲突时,优先保留官方的核心逻辑,调整你的二开代码
3. **分支管理**: 重要功能单独开分支,测试通过后再合并
4. **备份数据**: 更新前备份数据库和配置文件
5. **测试环境**: 建议先在测试环境验证更新,再应用到生产
---
## 📋 常用命令速查
```bash
# Git 管理
git status # 查看状态
git log --oneline -10 # 查看提交历史
git fetch upstream # 拉取官方更新
git diff upstream/main # 对比差异
git merge upstream/main # 合并更新
# Docker 管理
docker-compose -f docker-compose.prod.yml ps # 查看状态
docker-compose -f docker-compose.prod.yml logs -f # 查看日志
docker-compose -f docker-compose.prod.yml restart # 重启
docker-compose -f docker-compose.prod.yml down # 停止
# 服务管理
docker-compose -f docker-compose.prod.yml pull # 更新镜像
docker-compose -f docker-compose.prod.yml up -d # 启动
```