[{"data":1,"prerenderedAt":101},["ShallowReactive",2],{"$fjBAwPG03Skju2RGjehIupuLkmyLIraIIQDssERkOPME":3,"$f3Fq3Vvc1RPyMVhHFov2pUb_iMkT70EUmvvI_ji0wSyQ":16},{"title":4,"date":5,"category":6,"readTime":7,"tags":8,"content":12,"_excerpt":13,"id":14,"_path":15},"Git 工作流最佳实践","2026-03-10","开发工具","5 分钟",[9,10,11],"Git","团队协作","版本控制","\u003Ch1>Git 工作流最佳实践\u003C\u002Fh1>\n\u003Ch2>分支策略\u003C\u002Fh2>\n\u003Ch3>Git Flow\u003C\u002Fh3>\n\u003Cp>这是一个经典的分支模型：\u003C\u002Fp>\n\u003Cul>\n\u003Cli>\u003Ccode>main\u003C\u002Fcode>：主分支，存放稳定代码\u003C\u002Fli>\n\u003Cli>\u003Ccode>develop\u003C\u002Fcode>：开发分支，集成所有功能\u003C\u002Fli>\n\u003Cli>\u003Ccode>feature\u002F*\u003C\u002Fcode>：功能分支，开发新功能\u003C\u002Fli>\n\u003Cli>\u003Ccode>release\u002F*\u003C\u002Fcode>：发布分支，准备发布\u003C\u002Fli>\n\u003Cli>\u003Ccode>hotfix\u002F*\u003C\u002Fcode>：紧急修复分支\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3>Trunk Based Development\u003C\u002Fh3>\n\u003Cp>适合持续集成的简单模型：\u003C\u002Fp>\n\u003Cul>\n\u003Cli>\u003Ccode>main\u003C\u002Fcode>：唯一的长期分支\u003C\u002Fli>\n\u003Cli>功能通过短生命周期的特性分支开发\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch2>提交规范\u003C\u002Fh2>\n\u003Ch3>使用约定式提交\u003C\u002Fh3>\n\u003Cp>格式：\u003Ccode>&lt;type&gt;(&lt;scope&gt;): &lt;description&gt;\u003C\u002Fcode>\u003C\u002Fp>\n\u003Cp>常见类型：\u003C\u002Fp>\n\u003Cul>\n\u003Cli>\u003Ccode>feat\u003C\u002Fcode>：新功能\u003C\u002Fli>\n\u003Cli>\u003Ccode>fix\u003C\u002Fcode>：修复 bug\u003C\u002Fli>\n\u003Cli>\u003Ccode>docs\u003C\u002Fcode>：文档更新\u003C\u002Fli>\n\u003Cli>\u003Ccode>style\u003C\u002Fcode>：代码格式\u003C\u002Fli>\n\u003Cli>\u003Ccode>refactor\u003C\u002Fcode>：重构\u003C\u002Fli>\n\u003Cli>\u003Ccode>test\u003C\u002Fcode>：测试\u003C\u002Fli>\n\u003Cli>\u003Ccode>chore\u003C\u002Fcode>：构建\u002F工具更新\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>示例：\u003Ccode>feat(auth): add login with Google\u003C\u002Fcode>\u003C\u002Fp>\n\u003Ch3>保持提交粒度适中\u003C\u002Fh3>\n\u003Cul>\n\u003Cli>每个提交应该是一个独立的逻辑单元\u003C\u002Fli>\n\u003Cli>避免超大提交\u003C\u002Fli>\n\u003Cli>避免过于琐碎的提交\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch2>代码审查\u003C\u002Fh2>\n\u003Ch3>PR 审查流程\u003C\u002Fh3>\n\u003Col>\n\u003Cli>创建 PR 时提供清晰的描述\u003C\u002Fli>\n\u003Cli>添加相关的测试\u003C\u002Fli>\n\u003Cli>至少需要一个 reviewer 批准\u003C\u002Fli>\n\u003Cli>使用 CI\u002FCD 自动检查\u003C\u002Fli>\n\u003C\u002Fol>\n\u003Ch3>审查要点\u003C\u002Fh3>\n\u003Cul>\n\u003Cli>代码正确性\u003C\u002Fli>\n\u003Cli>代码质量\u003C\u002Fli>\n\u003Cli>性能考虑\u003C\u002Fli>\n\u003Cli>安全性\u003C\u002Fli>\n\u003Cli>可维护性\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch2>总结\u003C\u002Fh2>\n\u003Cp>选择适合团队的工作流，并坚持执行，可以显著提高团队的协作效率。\u003C\u002Fp>\n","这是一个经典的分支模型：","git-workflow-best-practices","\u002Fwriting\u002Fgit-workflow-best-practices\u002F",[17,29,43,54,65,76,89,91],{"id":18,"title":19,"date":20,"category":21,"readTime":22,"tags":23,"_excerpt":27,"_path":28},"cf-xray-nginx-tutorial","移动宽带 SSH 不到海外 VPS？CF + nginx 反向代理的全套方案","2026-06-16","技术教程","17 分钟",[24,25,26],"333","eee","999","3 分钟摘要： - 移动宽带到 VPS 的 SSH 流量被 GFW 识别并阻断 - 用 Cloudflare CDN 隐藏真实 VPS IP（免费方案） - xray VLESS + WebSocket 加密代理流量 - nginx 网站防御 G网 主动探测","\u002Fwriting\u002Fcf-xray-nginx-tutorial\u002F",{"id":30,"title":31,"date":32,"category":33,"readTime":34,"tags":35,"_excerpt":41,"_path":42},"telegram-86-login-recovery","86 手机号无法登录 Telegram 终极解决方案：绕过付费验证码 + 旧设备验证找回账号","2026-06-14","工具教程","8 分钟",[36,37,38,39,40],"Telegram","86手机号","账号找回","二次验证","短信收费","3 分钟摘要： - 86 号码 + 邮箱 + 二次验证密码 = 找回账号的三要素，缺一不可 - 用第三方客户端 Telega（绕过 Google Play 校验版本）登录，触发邮箱 + 2FA 通道 - 登录成功后再用官方 Telegram 登录、更新到最新版本 - 整个过程不需要原手机短信、不需要","\u002Fwriting\u002Ftelegram-86-login-recovery\u002F",{"id":44,"title":45,"date":46,"category":47,"readTime":34,"tags":48,"_excerpt":52,"_path":53},"indie-developer-journey","从零到一：我的独立开发之路","2026-05-15","创业人生",[49,50,51],"独立开发","创业","个人成长","2023年初，我做出了一个重要决定：离开稳定的工作，成为一名独立开发者。这个决定并非一时冲动，而是经过深思熟虑的结果。","\u002Fwriting\u002Findie-developer-journey\u002F",{"id":55,"title":56,"date":57,"category":21,"readTime":58,"tags":59,"_excerpt":63,"_path":64},"vue3-composition-api","Vue 3 Composition API 完全指南","2026-04-28","12 分钟",[60,61,62],"Vue","JavaScript","前端","Composition API 是 Vue 3 引入的一组基于函数的 API，它允许我们使用函数来组织组件逻辑，而不是选项对象。","\u002Fwriting\u002Fvue3-composition-api\u002F",{"id":66,"title":67,"date":68,"category":21,"readTime":69,"tags":70,"_excerpt":74,"_path":75},"react-native-performance","React Native 性能优化实战","2026-04-15","10 分钟",[71,72,73],"React Native","性能","移动端","在开发 React Native 应用时，我们经常会遇到以下性能问题：","\u002Fwriting\u002Freact-native-performance\u002F",{"id":77,"title":78,"date":79,"category":80,"readTime":7,"tags":81,"_excerpt":87,"_path":88},"futures-trading-seven-rules","期货交易的七条铁律：从亏损到稳定盈利的思考","2026-03-20","交易心得",[82,80,83,84,85,86],"期货交易","交易思维","止损","趋势跟踪","心法","做期货这几年，踩过的坑、爆过的仓、熬过的夜，最终都沉淀成这七条心得。期货交易本质上不是预测行情，而是管理自己。以下每一条都是真金白银换来的，建议反复读、慢慢悟。","\u002Fwriting\u002Ffutures-trading-seven-rules\u002F",{"id":14,"title":4,"date":5,"category":6,"readTime":7,"tags":90,"_excerpt":13,"_path":15},[9,10,11],{"id":92,"title":93,"date":94,"category":21,"readTime":95,"tags":96,"_excerpt":99,"_path":100},"typescript-tips","TypeScript 实用技巧","2026-02-25","7 分钟",[97,62,98],"TypeScript","编程技巧","使用类型守卫来缩小类型范围：","\u002Fwriting\u002Ftypescript-tips\u002F",1781610782243]