上一篇我们已经讲完了AI产品经理怎么在 IDE 里用 Git、GitHub 和研发协作的整体逻辑。
AI 时代,不进代码现场的产品经理已经被淘汰:从 PRD 到 PR 产研协作新范式
这一篇按照产品经理使用 Git 的需求和逻辑
直接讲具体怎么操作,按钮怎么点,顺序怎么走,遇到分支、提交、同步、PR、rebase、cherry-pick、冲突时分别该点哪里。
这篇会完全用 UI 的方式写,不要求你学习任何 terminal 命令。
建议收藏,需要真正操作的时候,直接打开照着走,或者当做字典直接查。
0,开始前先确认三件事
目的,避免一开始就切错分支、改错需求、合错目标。
确认 ticket ↓确认从哪个分支开始 ↓确认最后合到哪个分支先问清楚。
这个需求的 ticket 是什么?这个需求从 develop 切,还是从 release 切?最后 PR 是合到 develop,还是合到 release?举例。
需求,AI 会话按钮状态优化Ticket,PROJ-123基准分支,develop功能分支,feature/PROJ-123-ai-chat-button目标分支,develop 或 release/版本号1,先认识 IDE 里的几个入口
目的,先知道每一步在哪里点。
源代码管理 ↓看改了哪些文件、暂存、提交左下角分支名 ↓看当前在哪条分支 ↓也可以切分支、创建分支Git 图表 ↓看提交历史、找 commit、复制提交哈希、挑拣 commit三个点菜单 ↓抓取、拉取、拉取(变基)、推送、存储切分支时,界面里常见几个词。
切换到签出到Checkout意思就是把当前工作区切到那条分支上。
2,每次重新开工,先更新本地基准分支
目的,保证你不是基于上周的旧代码开始写。
适用场景。
你本地已经有项目文件夹 ↓上周已经发过版 ↓这周重新打开 IDE 做新需求 ↓先更新本地基准分支UI 操作。
打开项目文件夹 ↓看左下角当前分支 ↓如果还在旧 feature,先切到基准分支 ↓比如 develop / main / release ↓确认源代码管理里没有未提交改动 ↓点「抓取」 ↓点「拉取」 ↓确认本地基准分支已经最新切到基准分支怎么切?
点击左下角分支名 ↓找到 develop / main / release/版本号 ↓点击它 ↓如果弹出选项,就选「签出到」或「切换到」 ↓看左下角是否已经变成目标分支也可以在 Git 图表里切。
打开 Git 图表 ↓找到 develop / release 分支标签 ↓右键 ↓点击「签出到」这里三个按钮这样记。
抓取,Fetch ↓只更新远端信息 ↓告诉你 origin/develop 最新到哪了 ↓不改变你本地文件拉取,Pull ↓把远端当前分支的最新代码拿下来 ↓会更新你本地当前分支和文件拉取(变基),Pull with Rebase ↓先拉取远端最新代码 ↓再把你本地还没推的提交重新排到后面说人话就是。
抓取,只是看看远端有什么新东西拉取,是真的把新东西拿到当前分支里拉取(变基),是拿下来以后,还顺手整理提交顺序最常见场景。
更新 develop / main / release 这种基准分支 ↓用「抓取」+「拉取」「拉取(变基)」更常用于你自己的 feature 分支上已经有提交,提 PR 前要对齐最新公共分支。
3,从最新基准分支切出 feature
目的,给当前需求创建一条独立施工通道。
先确认你已经在基准分支上,比如要从 develop 切新分支,就先切到 develop。
UI 操作。
点击左下角分支名 ↓找到 develop / release/版本号 ↓点击「签出到」或「切换到」 ↓确认左下角已经显示 develop / release ↓再点击左下角分支名 ↓选择「创建新分支」 ↓输入分支名 ↓确认左下角已经切到新 feature有些 Git 图表里也可以这样做。
在 Git 图表里找到 develop / release ↓右键这条分支 ↓点击「签出到」 ↓再从当前分支创建新分支分支命名。
feature/PROJ-123-ai-chat-button命名规则。
feature ↓ticket 号 ↓简短功能名不要这样做。
直接在 main 上改直接在 develop 上改在旧 feature 上继续写新需求一个分支塞多个需求4,用 AI 改代码前,先限制范围
目的,避免 AI 顺手改太多,制造无关 diff。
给 AI 的指令可以这样写。
只修改当前 ticket 相关代码不要重构不要格式化无关文件不要改命名不要顺手优化推荐操作流。
说明当前 ticket ↓说明要改的页面或组件 ↓说明只允许改哪些行为 ↓让 AI 给方案 ↓确认后再让 AI 改代码如果只是改按钮状态,就不要让 AI 重构整个页面。如果只是补埋点,就不要让 AI 改页面结构。
5,改完以后先看 diff
目的,确认这次提交只包含当前需求的改动。
UI 操作。
打开左侧「源代码管理」 ↓查看「更改」列表 ↓逐个点开文件 ↓查看本次 diff ↓确认是否都和当前 ticket 有关检查三件事。
文件是否和当前需求有关是否有 AI 顺手改掉的无关内容是否有整文件格式化导致的大面积 diff如果某个文件不该改。
右键文件 ↓点击「放弃更改」如果只想提交部分改动。
打开 diff ↓只暂存需要的代码块 ↓不确定就找研发看6,暂存、提交、同步
目的,把本地改动形成一次清晰的 commit,并推到远端。
UI 操作。
源代码管理 ↓选择要提交的文件 ↓点击「暂存」 ↓填写提交信息 ↓点击「提交」 ↓点击「推送」或「同步」提交信息可以这样写。
feat: 优化 AI 会话按钮状态, #PROJ-123fix: 修复 AI 会话按钮禁用态判断, #PROJ-123hotfix: 修复生产环境支付金额精度问题, #PROJ-123第一次推送新分支时,IDE 可能显示。
发布分支点它。
发布后,远端才有你的 feature 分支。
7,提 PR 前,对齐最新目标分支
目的,提前发现冲突,避免 PR 合并时才爆。
适用场景。
你这个 feature 写了一两天 ↓别人已经往 develop / release 合了新代码 ↓你准备提 PR ↓先 rebase(变基)到最新目标分支UI 操作。
确认当前在自己的 feature 分支 ↓确认没有未提交改动 ↓点「抓取」 ↓打开 Git 图表 ↓找到最新 origin/develop 或 origin/release/版本号 ↓右键这个最新节点 ↓选择「将当前分支变基到此处」英文界面可能叫 Rebase Current Branch onto This。
如果没有冲突,IDE 会自动完成 rebase,然后继续提 PR。
如果有冲突。
打开冲突文件 ↓看业务逻辑 ↓整理成最终正确代码 ↓暂存冲突文件 ↓点击「继续变基」如果解乱了。
点击「中止变基」 ↓回到 rebase 前状态 ↓找研发一起看注意。
不要在 feature 上把 develop 整体 merge 进来不要制造 Merge origin/develop into feature 这种提交8,在 IDE 里发 PR / MR
目的,把你的 feature 正式交给团队 Review 和 CI。
UI 操作。
打开 GitHub / Pull Request 面板 ↓选择「创建 Pull Request」 ↓源分支选你的 feature ↓目标分支选 develop / release ↓填写标题 ↓填写描述 ↓创建 PRPR 描述写四件事。
关联 ticket本次改动影响范围自测情况示例。
关联 ticket,PROJ-123本次改动,优化 AI 会话按钮 disabled、loading、normal 三种状态影响范围,AI 会话页按钮交互自测情况,本地验证三种状态展示正常创建后看 CI。
CI 绿色 ↓等 Review ↓按团队规范合并如果 CI 红了。
点开失败详情 ↓截图或复制错误信息 ↓发给研发一起看不要催「先合了再说」。
9,develop 测出 bug 后,怎么修
目的,保证最后进 release 的 feature 本身是修好的。
场景。
feature 已经合到 develop 测试 ↓测试发现这个 feature 有 bug ↓后面还要把 feature 合到 release正确流程。
切回原 feature 分支 ↓修 bug ↓看 diff ↓提交一个 fix commit ↓把这个 fix commit 同步到 develop 复测 ↓复测通过 ↓把修好的 feature 合到 release如果之前 feature 合 develop 用的是普通 merge。
推送修好的 feature ↓再发一次 feature 到 develop 的 PR ↓这次主要新增 fix commit如果之前用的是 squash merge。
不要直接拿原 feature 再提 develop ↓改用 cherry-pick(挑拣)fix commit挑拣 fix commit 的 UI 操作。
切到最新 develop ↓抓取 ↓拉取 ↓从 develop 创建临时 bugfix 分支 ↓打开 Git 图表 ↓找到 feature 上那个 fix commit ↓右键 commit ↓点击「挑拣」 ↓推送 bugfix 分支 ↓发 PR 到 develop临时分支可以叫。
bugfix/PROJ-123-sync-fix-to-develop禁止动作。
不要把 develop 整体 merge 回 feature不要把从 develop 切出来的整条 bugfix 分支 merge 回 feature10,冲突了怎么处理
目的,把两个分支改到同一处的代码,整理成最终正确版本。
IDE 里一般会显示冲突文件,打开后可能看到。
当前更改传入更改接受当前接受传入接受两者操作流。
打开冲突文件 ↓看两边代码 ↓判断最终业务逻辑 ↓手动整理成最终版本 ↓保存文件 ↓暂存文件 ↓继续变基 / 继续挑拣最推荐。
不要盲点接受当前不要盲点接受传入看不懂就找研发如果越解越乱。
中止变基 / 中止挑拣 ↓回到安全状态 ↓找研发一起处理11,release 阶段怎么走
目的,把本轮要上线的代码放进发版测试通道。
如果团队流程是。
feature ↓develop ↓release ↓main那你通常先把 feature 合到 develop 做集成测试。
到发版阶段,再由研发或发版负责人把本轮内容进入 release。
如果团队流程是从 release 切 feature。
切到 release/版本号 ↓抓取 ↓拉取 ↓从 release 创建 feature ↓改代码 ↓提交 ↓推送 ↓发 PR 到 releaserelease 阶段的原则。
不随便加新需求只修本轮要上线的问题确认 release 修复是否同步回 develop12,hotfix 阶段怎么走
目的,修线上正在出血的问题,并避免下次发版回退。
先问 TL 或研发负责人。
确认当前线上版本对应哪个分支、tag 或 commit。
不要自己猜。
操作流。
确认线上基准 ↓从线上基准切 hotfix / bugfix 分支 ↓只修线上阻断问题 ↓提交 ↓推送 ↓发 PR 到 main ↓确认是否同步回当前 release / develop这里最关键的是。
hotfix 必须基于当前线上版本不要从开发中的 develop / release 随便切产品经理要记得问一句。
这个 hotfix 已经同步回当前 release / develop 了吗?这句话可以避免下次发版又把 bug 带回来。
13,最后给一张 UI 操作检查表
开工前。
确认 ticket ↓确认基准分支 ↓确认目标分支 ↓确认工作区干净更新基准分支。
切到 develop / main / release ↓抓取 ↓拉取 ↓确认本地最新创建 feature。
点击左下角分支名 ↓签出到基准分支 ↓创建新分支 ↓输入 feature/PROJ-xxx-xxx ↓确认当前分支正确开发与提交。
用 AI 改最小范围 ↓看 diff ↓暂存 ↓提交 ↓推送 / 发布分支提 PR 前。
抓取 ↓Git 图表找到最新目标分支 ↓右键 ↓将当前分支变基到此处 ↓解决冲突 ↓发 PR测试发现 bug。
先判断 bug 应该修在哪条分支 ↓feature 后面要进 release,就先修 feature ↓需要 develop 复测,就同步 fix commit ↓不要把 develop 整体合回 featurerelease / hotfix。
release,只处理本轮要上线内容hotfix,只修线上阻断问题hotfix 后确认同步回当前迭代分支这篇你只要记住一个操作逻辑。
产品经理用 IDE 改代码,不是改完就结束。
而是要走完。
切对分支 ↓看清 diff ↓提交清楚 ↓同步到远端 ↓发起 PR ↓处理冲突 ↓进入正确目标分支
夜雨聆风