cicd-test/README.md

194 lines
5.3 KiB
Markdown
Raw Normal View History

2025-12-05 17:44:13 +08:00
# 操作说明
2025-04-24 06:31:21 +08:00
2025-12-05 03:13:57 -05:00
当然可以!以下是一份 **专为协作者(如你)量身定制的完整 Git + CI/CD 协作流程指南**,基于你的真实使用场景:
- 🧑‍💻 你是 **协作者**(非仓库所有者)
- 💻 使用 **JetBrains IDEA** 开发
- 📦 仓库托管在 **Gitea**
- ⚙️ CI/CD 由 **Drone** 驱动
- 🔄 工作流:**功能分支 → PR → 审核 → 合并到 `main`**
---
## 🎯 目标
让你从 **第一次参与项目****日常开发、提交 PR、同步代码** 全流程清晰、无歧义、零命令行。
---
## 🔄 完整协作流程6 个清晰阶段)
```mermaid
graph TD
A[0. 克隆项目] --> B[1. 同步最新 main]
B --> C[2. 创建功能分支]
C --> D[3. 日常开发与提交]
D --> E[4. 提交前同步 main]
E --> F[5. 推送并创建 PR]
F --> G[6. 等待审核 & 合并]
```
---
### ✅ 阶段 0克隆项目首次参与
> 只需做一次
1. 打开 IDEA → **Get from VCS**
- URL: `https://gitea.hy-ec.cn/jk_yinzy/adfsadfsadf.git`
- Directory: 本地路径(如 `~/projects/my-project`
2. 点击 **Clone**
3. 登录你的 Gitea 账号(需有 **读写权限**
✅ 此时你拥有完整本地仓库,包含 `main` 分支。
---
### ✅ 阶段 1同步最新 `main`(重要!)
> 确保你基于最新代码开始开发
1. 右下角点击分支名(应为 `main`
2. 菜单栏:**VCS → Git → Fetch**
(拉取远程所有更新,包括 `origin/main`
3. 确认本地 `main` 是最新的(可选:切换到 `main` → 查看提交历史)
> 💡 这一步防止你基于过时代码开发!
---
### ✅ 阶段 2创建你的功能分支
1. 右下角点击当前分支(`main`
2. 选择 **New Branch**
- 名称规范:`feat/xxx``fix/xxx``yourname/topic`
例如:`yinzy/user-profile`
3. IDEA 自动切换到新分支
✅ 此分支仅属于你,可自由提交。
---
### ✅ 阶段 3日常开发与提交
1. 编写代码、修改文件
2. 底部 **Git → Commit**
- 勾选变更文件
- 输入语义化提交信息:
```
feat: add user profile page
```
3. 点击 **Commit and Push**
> ⚠️ 首次推送时:
> - IDEA 会弹窗 → 勾选 **Set upstream**
> - 远程分支自动创建(如 `origin/yinzy/user-profile`
✅ 之后每次提交可直接 **Push**(无需再设 upstream
---
### ✅ 阶段 4提交 PR 前 —— 再次同步 `main`
> ⚠️ 关键步骤!避免 PR 出现冲突
即使你刚开发完,也可能有人已合并新代码到 `main`
#### 操作步骤(全部在 IDEA
1. **VCS → Git → Fetch**
(获取最新 `origin/main`
2. **VCS → Git → Rebase...**
- Onto branch: `origin/main`
- 点击 **Rebase**
3. 如果出现冲突:
- IDEA 弹出 **Merge Conflicts** 窗口
- 双击文件,在三向编辑器中解决
- 点击 **Apply** → 继续
4. **VCS → Git → Push**
- 如果提示 “Push failed”点击 **Force Push**
> ✅ 现在你的分支干净地基于最新 `main`
---
### ✅ 阶段 5推送并创建 Pull RequestPR
1. 确保代码已推送(右上角无未推送提交)
2. IDEA 可能弹出提示:
> “Your branch has been pushed. Create a pull request?”
3. 点击 **Create Pull Request**
- 或手动打开 Gitea 页面
4. 在 Gitea 中填写:
- **标题**`feat: add user profile`
- **描述**:功能说明、如何测试
- **不要加 `WIP:`**(除非未完成)
5. 点击 **Create Pull Request**
✅ Drone 自动运行 CI`drone/pr`
---
### ✅ 阶段 6等待审核 & 合并
1. 维护者(`jk_yinzy`)会:
- 查看 CI 结果(必须绿色 ✅)
- 审核代码
- 点击 **Approve**
- 点击 **「创建合并提交」**Squash and merge
2. 合并后PR 自动关闭
3. (可选)维护者删除你的远程分支
> 🎉 你的代码正式进入 `main`
---
## 🔁 日常开发循环(每天重复)
当你继续开发新功能时,只需重复:
```mermaid
graph LR
A[Fetch latest main] --> B[Create new branch]
B --> C[Develop + Commit]
C --> D[Rebase onto main]
D --> E[Push + Create PR]
```
> 💡 每次提 PR 前都执行 **阶段 4rebase**,这是专业协作的核心习惯!
---
## 🛠️ IDEA 快捷操作速查
| 操作 | 路径 |
|------|------|
| 拉取远程更新 | **VCS → Git → Fetch** |
| 创建分支 | 右下角 → New Branch |
| 变基到 main | **VCS → Git → Rebase... → origin/main** |
| 强制推送 | **Push → Force Push** |
| 查看提交历史 | **Git → Log** |
---
## 📌 重要提醒
| 注意事项 | 说明 |
|--------|------|
| ❌ 不要直接推送到 `main` | 分支保护会拒绝 |
| ✅ 每次 PR 前必须 rebase | 避免“此分支落后于 main” |
| ✅ 提交信息要清晰 | 便于审核和追溯 |
| ✅ 小步提交、频繁推送 | 降低冲突风险 |
---
## ✅ 最终效果
- 你作为协作者:**独立开发、安全提交、顺利合入**
- 维护者:**轻松审核、一键合并、历史干净**
- 项目:**CI 始终通过、`main` 永远可部署**
---
如果你希望,我可以将这份指南导出为 **PDF 手册****团队协作备忘单Markdown / Word**,方便你和队友随时查阅!是否需要?
## 添加git cicd