第8章 如何用 Cursor 日常迭代开发:分支、提示、调试
目标概述
本章将介绍在日常开发中,如何充分利用 Cursor 编辑器和 Git 分支管理进行迭代开发。软件开发是一个循环反复的过程:添加新功能、修复bug、优化性能,都需要不断修改代码和测试。本章的目标是教你一些高效开发技巧:例如创建新分支开发功能、使用 Cursor 的 AI 提示来加速编码和排查错误、调试运行程序并查看输出、以及良好的提交习惯和代码评审。学完本章,你将能够像专业开发者一样,使用 Cursor 辅助完成开发任务,提高生产力,同时保持代码质量,通过Git分支和合并管理项目演进。
主要知识点
-
Git 分支工作流:之前第2章我们学习了基础的 Git 分支创建、合并。本章强调在实际迭代中如何应用。例如:每新增一个功能或修复一个bug,建议新建一个分支,在该分支上开发测试通过后,再合并入主分支。这样主分支始终保持稳定运行的代码。熟悉常用分支命名规范(如 feature/前缀、bugfix/前缀等)。[37] 例如,你打算给ChatBot增加“多轮对话上下文记忆”功能,就可以 git checkout -b feature/context-memory 创建功能分支。开发完成并自测OK,再 git checkout main 然后 git merge feature/context-memory 合并。[41]
-
Cursor 集成 Git:Cursor 在底部状态栏和左侧可能集成了一些Git功能。根据其论坛,Cursor允许执行Git命令,可能在 chat 或 command palette 使用 @Git 提示[93]。具体而言:
-
@Commit 在AI对话中引用当前未提交的改动[94]。例如你在Chat问:“请帮我检查这些改动是否有问题 @Commit”,Cursor AI会获取你当前改动差异做分析。
-
@Branch 可让AI对比当前分支和主分支差异[94],辅助生成变更说明或检查合并冲突等。
-
Cursor 左下角分支标识,点击可快速切换/创建分支(具体UI取决于版本)。也可以直接使用 Cursor 内置终端输入git命令(Cursor有VSCode那样的终端窗口)。[40]
-
利用 AI 辅助编码:Cursor 的卖点是 AI 赋能开发。实践中可以这样利用:
-
代码生成:当准备开发新功能时,不妨先用自然语言描述想实现的逻辑,然后让 Cursor AI 生成初步代码,再人工检查调整。例如在Chat对Cursor说:“请为 FastAPI 添加一个新的POST接口 /chat_history,返回最近5条对话记录”,AI可能给出一个代码片段,你可以据此修改集成进项目。这样的效率远超从零手写。[95]
-
错误调试:当程序出现错误栈(traceback)时,可以将错误信息复制到Cursor AI chat,让它解释错误原因并建议解决方案[96]。例如 openai.error.RateLimitError 出现时,AI可能解释是超过速率限制,建议增加延时或升级计划。
-
代码重构:选中一段代码,按 Ctrl+K 呼出Composer inline编辑,输入指令如“简化这个函数逻辑”或“为此函数添加注释”,Cursor会相应修改选中代码或生成注释。[10] 这种功能可以快速改善代码可读性或遵循风格规范。
-
Agent Bug Finder(高级):Cursor Pro提供后台Agent能自动扫描项目找潜在bug[97]。虽然这一功能目前可能需要付费且实验,但了解存在这样AI自动除错的趋势。
-
调试运行:Cursor 基于 VSCode,应该有运行调试的支持。你可以按 F5 或通过 UI 添加 debug配置(launch.json)。实际调试需在Cursor里安装调试器扩展。简单方法:使用 Cursor 内置终端运行程序并观察输出/错误即可。练习过程中,常用 print() 打印调试信息,观察终端输出来了解程序行为。Cursor 的AI可以帮忙解释输出。例如当输出不符合预期,可以直接问AI:“为什么程序输出X而不是Y?” 当然要把相关代码或逻辑也告诉AI才能分析。
-
代码审查和质量:在团队协作中,Merge前通常要Pull Request code review。即使个人项目,也可用AI充当审查助手。Cursor的 @Commit 和 @Branch 标签可以让AI看你的改动[93]并做评审。例如:“请审查这些更改是否存在错误或改进空间 @Branch”。AI可能指出一些你没注意的边界情况或优化建议,这就像一个智能pair reviewer。[95]
-
Cursor 规则:Cursor允许定义 .cursorrules 文件,给AI一些项目级别指示[95]。比如你可以写规则“Prefer Chinese comments in code”或者“API responses must include fields X, Y”来让AI更贴近项目要求。这在迭代中保持一致性很有帮助。
实践指导
-
创建开发分支:比如你要添加对话上下文功能。执行 git checkout -b feature/context。[40] 在 Cursor 底部会显示当前分支=feature/context。
-
利用AI实现功能:打开 Cursor 的Chat (Ctrl+L)。你可以对AI说:“现在我想实现对话上下文:用户每问一句,我要把这句存到server内存并在下次OpenAI调用时附带之前的聊天记录。请帮我修改当前FastAPI代码来实现这一功能。” AI很可能会输出一段修改建议,涉及在后端维护会话列表,并修改get_answer函数拼接历史对话等。仔细审阅,复制或应用修改到你的代码。
-
如果AI改动涉及多个文件,Cursor可能用 diff或多段输出方式。你可以用Cursor的“接受修改”功能(可能类似Copilot suggestion逐行tab,或复制粘贴)。
-
修改完成后,手动检查逻辑正确性。自行运行 uvicorn 本地测试确保新功能工作。
-
自测和调试:启动后端、前端,本地试着连续问两句看是否记忆。若发现Bug,例如AI老是复述整个历史,你可以在Chat中询问 Cursor:“我的实现有问题。每次回答重复历史,请帮忙分析可能的原因?” 将相关代码片段贴给AI。它或许会指出你的 prompt 拼接方式不当。根据建议修改代码再测。
-
也可以使用 Cursor 内置调试,如设置断点在 get_answer_from_openai,观察传给OpenAI的prompt内容,验证是否如预期。Cursor作为VSCode衍生应该可以F5启动调试,需要调试配置。你也可以用 print(prompt) 这种简单手段调试。
-
提交更改:确认新功能OK,就在Cursor终端执行:
git add .
git commit -m "Add context memory in chatbot (fix #123)"
- 写清晰的 commit 信息。若使用issue编号(如#123),GitHub上可关联issue。
-
你可以也让AI润色commit描述:“用中文详细写一个提交消息,描述增加上下文记忆功能的实现原理”。然后将AI输出作为commit说明的长描述写入。
-
代码审查:如果你和他人协作,这时会发起 Pull Request 让同伴审查。如果没有同伴,可以自我审查或者让AI帮忙。复制 git diff 或利用Cursor @Branch 在Chat里让AI审视[93]。比如:“请检查 feature/context 分支相对于 main 的差异 @Branch,指出是否有不合理的地方”。AI可能帮你发现一些小问题,比如忘记删除调试打印,或可能存在的性能隐患。你可以决定是否修改。
-
合并分支:审查通过后,切回main分支 git checkout main,然后 git merge feature/context --no-ff(可以保留merge commit)。删除临时分支:git branch -d feature/context。[41]
-
如果合并遇冲突,Cursor会在Git面板标记冲突文件。你可以用Cursor打开冲突文件,Cursor AI甚至可辅助解决:在Chat中贴冲突标记代码,让AI给出合并建议。解决后测试无误再 commit 合并。
-
迭代发布:完成新功能后,push main到GitHub,触发CI/CD部署更新。然后线上验证功能运行正常。这就是一次完整迭代。
-
持续集成探索:除了平台CI/CD,其实可引入自动测试。可以编写一些单元测试函数来验证ChatBot输出格式等,用 pytest 运行。Cursor AI可以帮你写测试用例[98]:“为 get_answer_from_openai 写测试”。测试确保每次改动不破坏原有功能。自动测试结合GitHooks或CI服务(GitHub Actions)在每次push时跑,未通过则阻止合并。这个比较高级,但值得了解实践。
提示和技巧
-
小步提交:每实现/修复一小部分就 commit,一方面有助于回退错误,另一方面 commit 颗粒清晰也让AI/人review容易理解[99]。不要堆积太多改动一次提交。
-
善用 AI 而不迷信 AI:Cursor AI 提示很强大,但偶尔也会出错或胡扯。一定要理解AI生成的代码再决定使用。特别是涉及外部API或安全的部分,AI可能不清楚上下文而给出错误假设。例如AI可能忘了我们的 ChatBot API返回结构,需要人来检查。总之,把AI当成助理而非替代。
-
记录 AI 讨论:Cursor Chat 面板的对话记录可以保存(Cursor有 Past Chats功能)[100]。建议你定期整理一些有价值的AI提示,形成自己的笔记或在项目文档注明。下次遇到类似问题可以快速搜索。
-
升级模型:Cursor Pro允许使用更强模型(如 GPT-4)或私有模型[33]。在难问题上更强AI会有帮助。如果你有条件,不妨尝试。
常见疑难
-
AI上下文有限:Cursor AI对当前文件和工作区有上下文大小限制。如果你项目大,AI有时只看到局部。可以分段提供信息给AI。或者用 Cursor 的 codebase indexing[26],确保AI“Knows your codebase”。Cursor会索引项目方便 AI 查找函数定义等[27]。如果AI回答驴唇不对马嘴,可能就是上下文不全,尝试给它更多提示或分步骤引导。
-
AI建议不适用:有时AI提议改动会破坏其他功能或者不符合需求。切忌盲目接受。应该像对待实习生建议一样审核。可以追问:“你的方案有无副作用?” 看AI如何自我检查。
-
Git操作失误:万一搞错分支或者merge了错误代码,可以用 Git 撤销。git reset, git revert 是常用的。Cursor AI也可帮助:“如何撤销上一个commit?” AI会告诉你 git revert <commit> 或 git reset HEAD~1 等[101]。
-
调试技巧:如果前后端都上线了,要调试某问题,可能需要在本地复现。使用相同环境数据重跑。对于OpenAI相关bug,记得OpenAI返回是不确定的,有时并非代码逻辑错,而是AI输出随温度变化。调试时可以固定 temperature=0 得到一致结果试验。
延伸思考
-
引入测试驱动开发:尝试在实现功能前先用AI帮助写测试,用红-绿-重构周期。AI能快速产出测试用例[96],你运行看失败,再去实现功能直到测试通过。这种开发方式(TDD)有助提升代码质量。
-
团队协作:如果有多个开发者,可以发挥Git分支+AI更大作用。多人并行在不同feature分支开发,各自用AI提效。Pull Request时,还可以用GitHub的Copilot or Cursor AI自动生成PR描述或评论代码。思考AI在Code Review阶段如何辅助:例如自动标注可能的bug行。这也是业界在探索的方向。
-
提升AI使用技巧:持续总结哪些提示写法效果好。例如给AI提要求尽量具体,分步骤:“第1步写出配置代码,第2步写出调用代码”,AI就会有条理输出。还有当AI不懂上下文时,可以教给它项目背景。这些技巧需要你在实践中不断摸索。
经过不断迭代开发,你的项目将日趋完善。借助 Cursor 强大的AI辅助和Git规范流程,开发效率和代码质量都能得到保障。到了这一步,你不仅掌握了从0到1实现一个项目的全过程,更学会了如何在未来持续改进和维护软件。恭喜你完成了整个“零基础从0到实战” Vibe Coding 教程!