1
0
forked from jk_yinzy/cicd-test
testuser 9cb3238d93 更新 README.md
Signed-off-by: testuser <test@jk.com>
2025-12-05 18:12:59 +08:00

194 lines
5.3 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.

# 操作说明3
当然可以!以下是一份 **专为协作者(如你)量身定制的完整 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