novel-doomsday-resurgence/GIT_WORKFLOW.md
唐天洛 bc9188b0fd feat(git-workflow): 添加 Git 工作流和脚本
包含:
- GIT_WORKFLOW.md - 详细的 Git 工作流规范
- scripts/git-setup.sh - Git 工作区初始化脚本
- scripts/git-daily.sh - 日常 Git 管理脚本
- scripts/git-novel-workflow.sh - 小说专用 Git 工作流
- 更新 .gitignore 排除子仓库的 .git 目录
- 添加 novel-tracker/ 目录
- 添加 projects/ 目录(排除子仓库 .git)
- 添加 tomato-novel/ 目录
2026-03-30 15:50:36 +08:00

141 lines
3.7 KiB
Markdown

# Git 工作流规范 - 番茄小说创作
## 分支策略
### 主分支
- `main/master`: 稳定版本,所有发布版本从此分支创建
- 保护分支,禁止直接推送,必须通过 Pull Request
### 开发分支
- `develop`: 主要开发分支,所有新功能合并到此分支
- `feature/*`: 功能分支,从 `develop` 创建,开发完成后合并回 `develop`
- `fix/*`: 修复分支,从 `develop``main` 创建,修复完成后合并回对应分支
- `hotfix/*`: 紧急修复分支,从 `main` 创建,修复完成后合并回 `main``develop`
### 发布分支
- `release/*`: 发布分支,从 `develop` 创建,用于发布准备
- `tag/v*.*.*`: 版本标签,标记发布版本
## 提交规范
### 提交消息格式
```
<type>(<scope>): <subject>
<body>
<footer>
```
### 类型 (type)
- `feat`: 新功能
- `fix`: 修复 bug
- `docs`: 文档更新
- `style`: 代码格式调整
- `refactor`: 代码重构
- `test`: 测试相关
- `chore`: 构建过程或辅助工具的变动
- `perf`: 性能优化
- `ci`: CI/CD 配置
### 示例
```
feat(novel): 添加第19章草稿
- 新增叶知秋视角的心理描写
- 完善张明远调查线索
- 添加悬疑钩子设置
Closes #123
```
## 文件组织
### 必版本控制的文件
1. **小说内容** (`novel/`): 所有章节、人物设定、大纲
2. **配置文件** (`*.md`): 核心配置文件
3. **脚本工具** (`*.py`, `*.sh`): 自动化脚本
4. **技能库** (`skills/`): 已安装的技能
5. **记忆文件** (`memory/`): 历史记录
### 忽略的文件
参见 `.gitignore` 配置
## 工作流程
### 日常开发
1.`develop` 创建功能分支: `git checkout -b feature/new-chapter develop`
2. 开发完成后提交: 遵循提交规范
3. 推送到远程: `git push origin feature/new-chapter`
4. 创建 Pull Request 到 `develop`
### 版本发布
1.`develop` 创建发布分支: `git checkout -b release/v1.0.0 develop`
2. 进行最终测试和调整
3. 合并到 `main`: `git checkout main && git merge --no-ff release/v1.0.0`
4. 打标签: `git tag -a v1.0.0 -m "Release v1.0.0"`
5. 合并回 `develop`: `git checkout develop && git merge --no-ff release/v1.0.0`
6. 删除发布分支: `git branch -d release/v1.0.0`
### 紧急修复
1.`main` 创建热修复分支: `git checkout -b hotfix/critical-bug main`
2. 修复问题并提交
3. 合并到 `main`: `git checkout main && git merge --no-ff hotfix/critical-bug`
4. 打标签: `git tag -a v1.0.1 -m "Hotfix v1.0.1"`
5. 合并回 `develop`: `git checkout develop && git merge --no-ff hotfix/critical-bug`
6. 删除热修复分支: `git branch -d hotfix/critical-bug`
## 备份策略
### 本地备份
- 每日自动提交到本地仓库
- 重要变更立即提交
### 远程备份
- 推送到私有 Git 服务器 (Gitea/GitLab)
- 定期推送到多个远程仓库
## 冲突解决
### 预防措施
1. 频繁从上游分支拉取更新
2. 保持分支小而专注
3. 及时合并已完成的功能
### 解决步骤
1. 拉取最新代码: `git pull origin develop`
2. 解决冲突: 手动编辑冲突文件
3. 标记已解决: `git add <file>`
4. 继续合并: `git commit`
5. 推送更新: `git push origin <branch>`
## 工具辅助
### Git 别名
```bash
# 添加到 ~/.gitconfig
[alias]
co = checkout
br = branch
ci = commit
st = status
lg = log --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit
```
### 提交前检查
```bash
# 检查代码格式
black *.py
isort *.py
# 运行测试
pytest tests/
```
## 注意事项
1. **禁止**提交敏感信息 (API Keys, 密码等)
2. **保持**提交历史的清晰和有意义
3. **及时**清理无用分支
4. **定期**备份远程仓库
5. **测试**后再合并到主分支