[{"data":1,"prerenderedAt":1061},["ShallowReactive",2],{"post-\u002Fposts\u002Fgit-cheatsheet":3,"all-posts-nav":782},{"id":4,"title":5,"body":6,"categories":769,"date":771,"description":12,"draft":772,"extension":773,"hidden":772,"meta":774,"navigation":52,"path":775,"published":772,"seo":776,"stem":777,"tags":778,"__hash__":781},"posts\u002Fposts\u002Fgit-cheatsheet.md","Git 常用操作备忘",{"type":7,"value":8,"toc":760},"minimark",[9,13,17,174,177,279,282,379,382,460,464,545,548,656,660,671,751,757],[10,11,12],"p",{},"记录一些 Git 日常高频操作，方便查阅。",[14,15,16],"h2",{"id":16},"基础操作",[18,19,24],"pre",{"className":20,"code":21,"language":22,"meta":23,"style":23},"language-bash shiki shiki-themes github-dark-dimmed github-light","# 初始化仓库\ngit init\n\n# 克隆远程仓库\ngit clone \u003Curl>\n\n# 查看状态\ngit status\n\n# 暂存所有修改\ngit add .\n\n# 提交\ngit commit -m \"feat: add new feature\"\n\n# 推送\ngit push origin main\n","bash","",[25,26,27,36,47,54,60,82,87,93,101,106,112,123,128,134,149,154,160],"code",{"__ignoreMap":23},[28,29,32],"span",{"class":30,"line":31},"line",1,[28,33,35],{"class":34},"sgHix","# 初始化仓库\n",[28,37,39,43],{"class":30,"line":38},2,[28,40,42],{"class":41},"sqRhv","git",[28,44,46],{"class":45},"sXfbr"," init\n",[28,48,50],{"class":30,"line":49},3,[28,51,53],{"emptyLinePlaceholder":52},true,"\n",[28,55,57],{"class":30,"line":56},4,[28,58,59],{"class":34},"# 克隆远程仓库\n",[28,61,63,65,68,72,75,79],{"class":30,"line":62},5,[28,64,42],{"class":41},[28,66,67],{"class":45}," clone",[28,69,71],{"class":70},"s6PUj"," \u003C",[28,73,74],{"class":45},"ur",[28,76,78],{"class":77},"ssh_m","l",[28,80,81],{"class":70},">\n",[28,83,85],{"class":30,"line":84},6,[28,86,53],{"emptyLinePlaceholder":52},[28,88,90],{"class":30,"line":89},7,[28,91,92],{"class":34},"# 查看状态\n",[28,94,96,98],{"class":30,"line":95},8,[28,97,42],{"class":41},[28,99,100],{"class":45}," status\n",[28,102,104],{"class":30,"line":103},9,[28,105,53],{"emptyLinePlaceholder":52},[28,107,109],{"class":30,"line":108},10,[28,110,111],{"class":34},"# 暂存所有修改\n",[28,113,115,117,120],{"class":30,"line":114},11,[28,116,42],{"class":41},[28,118,119],{"class":45}," add",[28,121,122],{"class":45}," .\n",[28,124,126],{"class":30,"line":125},12,[28,127,53],{"emptyLinePlaceholder":52},[28,129,131],{"class":30,"line":130},13,[28,132,133],{"class":34},"# 提交\n",[28,135,137,139,142,146],{"class":30,"line":136},14,[28,138,42],{"class":41},[28,140,141],{"class":45}," commit",[28,143,145],{"class":144},"swcJU"," -m",[28,147,148],{"class":45}," \"feat: add new feature\"\n",[28,150,152],{"class":30,"line":151},15,[28,153,53],{"emptyLinePlaceholder":52},[28,155,157],{"class":30,"line":156},16,[28,158,159],{"class":34},"# 推送\n",[28,161,163,165,168,171],{"class":30,"line":162},17,[28,164,42],{"class":41},[28,166,167],{"class":45}," push",[28,169,170],{"class":45}," origin",[28,172,173],{"class":45}," main\n",[14,175,176],{"id":176},"分支管理",[18,178,180],{"className":20,"code":179,"language":22,"meta":23,"style":23},"# 创建并切换分支\ngit checkout -b feature\u002Fmy-feature\n\n# 查看所有分支\ngit branch -a\n\n# 合并分支\ngit merge feature\u002Fmy-feature\n\n# 删除本地分支\ngit branch -d feature\u002Fmy-feature\n\n# 删除远程分支\ngit push origin --delete feature\u002Fmy-feature\n",[25,181,182,187,200,204,209,219,223,228,237,241,246,257,261,266],{"__ignoreMap":23},[28,183,184],{"class":30,"line":31},[28,185,186],{"class":34},"# 创建并切换分支\n",[28,188,189,191,194,197],{"class":30,"line":38},[28,190,42],{"class":41},[28,192,193],{"class":45}," checkout",[28,195,196],{"class":144}," -b",[28,198,199],{"class":45}," feature\u002Fmy-feature\n",[28,201,202],{"class":30,"line":49},[28,203,53],{"emptyLinePlaceholder":52},[28,205,206],{"class":30,"line":56},[28,207,208],{"class":34},"# 查看所有分支\n",[28,210,211,213,216],{"class":30,"line":62},[28,212,42],{"class":41},[28,214,215],{"class":45}," branch",[28,217,218],{"class":144}," -a\n",[28,220,221],{"class":30,"line":84},[28,222,53],{"emptyLinePlaceholder":52},[28,224,225],{"class":30,"line":89},[28,226,227],{"class":34},"# 合并分支\n",[28,229,230,232,235],{"class":30,"line":95},[28,231,42],{"class":41},[28,233,234],{"class":45}," merge",[28,236,199],{"class":45},[28,238,239],{"class":30,"line":103},[28,240,53],{"emptyLinePlaceholder":52},[28,242,243],{"class":30,"line":108},[28,244,245],{"class":34},"# 删除本地分支\n",[28,247,248,250,252,255],{"class":30,"line":114},[28,249,42],{"class":41},[28,251,215],{"class":45},[28,253,254],{"class":144}," -d",[28,256,199],{"class":45},[28,258,259],{"class":30,"line":125},[28,260,53],{"emptyLinePlaceholder":52},[28,262,263],{"class":30,"line":130},[28,264,265],{"class":34},"# 删除远程分支\n",[28,267,268,270,272,274,277],{"class":30,"line":136},[28,269,42],{"class":41},[28,271,167],{"class":45},[28,273,170],{"class":45},[28,275,276],{"class":144}," --delete",[28,278,199],{"class":45},[14,280,281],{"id":281},"撤销操作",[18,283,285],{"className":20,"code":284,"language":22,"meta":23,"style":23},"# 撤销工作区修改（未暂存）\ngit checkout -- \u003Cfile>\n\n# 取消暂存\ngit reset HEAD \u003Cfile>\n\n# 撤销最近一次提交（保留修改）\ngit reset --soft HEAD~1\n\n# 撤销最近一次提交（丢弃修改）\ngit reset --hard HEAD~1\n",[25,286,287,292,311,315,320,338,342,347,359,363,368],{"__ignoreMap":23},[28,288,289],{"class":30,"line":31},[28,290,291],{"class":34},"# 撤销工作区修改（未暂存）\n",[28,293,294,296,298,301,303,306,309],{"class":30,"line":38},[28,295,42],{"class":41},[28,297,193],{"class":45},[28,299,300],{"class":144}," --",[28,302,71],{"class":70},[28,304,305],{"class":45},"fil",[28,307,308],{"class":77},"e",[28,310,81],{"class":70},[28,312,313],{"class":30,"line":49},[28,314,53],{"emptyLinePlaceholder":52},[28,316,317],{"class":30,"line":56},[28,318,319],{"class":34},"# 取消暂存\n",[28,321,322,324,327,330,332,334,336],{"class":30,"line":62},[28,323,42],{"class":41},[28,325,326],{"class":45}," reset",[28,328,329],{"class":45}," HEAD",[28,331,71],{"class":70},[28,333,305],{"class":45},[28,335,308],{"class":77},[28,337,81],{"class":70},[28,339,340],{"class":30,"line":84},[28,341,53],{"emptyLinePlaceholder":52},[28,343,344],{"class":30,"line":89},[28,345,346],{"class":34},"# 撤销最近一次提交（保留修改）\n",[28,348,349,351,353,356],{"class":30,"line":95},[28,350,42],{"class":41},[28,352,326],{"class":45},[28,354,355],{"class":144}," --soft",[28,357,358],{"class":45}," HEAD~1\n",[28,360,361],{"class":30,"line":103},[28,362,53],{"emptyLinePlaceholder":52},[28,364,365],{"class":30,"line":108},[28,366,367],{"class":34},"# 撤销最近一次提交（丢弃修改）\n",[28,369,370,372,374,377],{"class":30,"line":114},[28,371,42],{"class":41},[28,373,326],{"class":45},[28,375,376],{"class":144}," --hard",[28,378,358],{"class":45},[14,380,381],{"id":381},"查看历史",[18,383,385],{"className":20,"code":384,"language":22,"meta":23,"style":23},"# 简洁日志\ngit log --oneline --graph --all\n\n# 查看某个文件的修改历史\ngit log -p \u003Cfile>\n\n# 查看某次提交的改动\ngit show \u003Ccommit-hash>\n",[25,386,387,392,408,412,417,434,438,443],{"__ignoreMap":23},[28,388,389],{"class":30,"line":31},[28,390,391],{"class":34},"# 简洁日志\n",[28,393,394,396,399,402,405],{"class":30,"line":38},[28,395,42],{"class":41},[28,397,398],{"class":45}," log",[28,400,401],{"class":144}," --oneline",[28,403,404],{"class":144}," --graph",[28,406,407],{"class":144}," --all\n",[28,409,410],{"class":30,"line":49},[28,411,53],{"emptyLinePlaceholder":52},[28,413,414],{"class":30,"line":56},[28,415,416],{"class":34},"# 查看某个文件的修改历史\n",[28,418,419,421,423,426,428,430,432],{"class":30,"line":62},[28,420,42],{"class":41},[28,422,398],{"class":45},[28,424,425],{"class":144}," -p",[28,427,71],{"class":70},[28,429,305],{"class":45},[28,431,308],{"class":77},[28,433,81],{"class":70},[28,435,436],{"class":30,"line":84},[28,437,53],{"emptyLinePlaceholder":52},[28,439,440],{"class":30,"line":89},[28,441,442],{"class":34},"# 查看某次提交的改动\n",[28,444,445,447,450,452,455,458],{"class":30,"line":95},[28,446,42],{"class":41},[28,448,449],{"class":45}," show",[28,451,71],{"class":70},[28,453,454],{"class":45},"commit-has",[28,456,457],{"class":77},"h",[28,459,81],{"class":70},[14,461,463],{"id":462},"暂存工作区stash","暂存工作区（stash）",[18,465,467],{"className":20,"code":466,"language":22,"meta":23,"style":23},"# 暂存当前修改\ngit stash\n\n# 查看 stash 列表\ngit stash list\n\n# 恢复最近一次 stash\ngit stash pop\n\n# 恢复指定 stash\ngit stash apply stash@{2}\n",[25,468,469,474,481,485,490,500,504,509,518,522,527],{"__ignoreMap":23},[28,470,471],{"class":30,"line":31},[28,472,473],{"class":34},"# 暂存当前修改\n",[28,475,476,478],{"class":30,"line":38},[28,477,42],{"class":41},[28,479,480],{"class":45}," stash\n",[28,482,483],{"class":30,"line":49},[28,484,53],{"emptyLinePlaceholder":52},[28,486,487],{"class":30,"line":56},[28,488,489],{"class":34},"# 查看 stash 列表\n",[28,491,492,494,497],{"class":30,"line":62},[28,493,42],{"class":41},[28,495,496],{"class":45}," stash",[28,498,499],{"class":45}," list\n",[28,501,502],{"class":30,"line":84},[28,503,53],{"emptyLinePlaceholder":52},[28,505,506],{"class":30,"line":89},[28,507,508],{"class":34},"# 恢复最近一次 stash\n",[28,510,511,513,515],{"class":30,"line":95},[28,512,42],{"class":41},[28,514,496],{"class":45},[28,516,517],{"class":45}," pop\n",[28,519,520],{"class":30,"line":103},[28,521,53],{"emptyLinePlaceholder":52},[28,523,524],{"class":30,"line":108},[28,525,526],{"class":34},"# 恢复指定 stash\n",[28,528,529,531,533,536,539,542],{"class":30,"line":114},[28,530,42],{"class":41},[28,532,496],{"class":45},[28,534,535],{"class":45}," apply",[28,537,538],{"class":45}," stash@{",[28,540,541],{"class":144},"2",[28,543,544],{"class":45},"}\n",[14,546,547],{"id":547},"远程仓库",[18,549,551],{"className":20,"code":550,"language":22,"meta":23,"style":23},"# 查看远程仓库\ngit remote -v\n\n# 添加远程仓库\ngit remote add origin \u003Curl>\n\n# 拉取远程更新（不合并）\ngit fetch origin\n\n# 拉取并合并\ngit pull origin main\n\n# 强制推送（谨慎使用）\ngit push --force-with-lease origin main\n",[25,552,553,558,568,572,577,595,599,604,614,618,623,634,638,643],{"__ignoreMap":23},[28,554,555],{"class":30,"line":31},[28,556,557],{"class":34},"# 查看远程仓库\n",[28,559,560,562,565],{"class":30,"line":38},[28,561,42],{"class":41},[28,563,564],{"class":45}," remote",[28,566,567],{"class":144}," -v\n",[28,569,570],{"class":30,"line":49},[28,571,53],{"emptyLinePlaceholder":52},[28,573,574],{"class":30,"line":56},[28,575,576],{"class":34},"# 添加远程仓库\n",[28,578,579,581,583,585,587,589,591,593],{"class":30,"line":62},[28,580,42],{"class":41},[28,582,564],{"class":45},[28,584,119],{"class":45},[28,586,170],{"class":45},[28,588,71],{"class":70},[28,590,74],{"class":45},[28,592,78],{"class":77},[28,594,81],{"class":70},[28,596,597],{"class":30,"line":84},[28,598,53],{"emptyLinePlaceholder":52},[28,600,601],{"class":30,"line":89},[28,602,603],{"class":34},"# 拉取远程更新（不合并）\n",[28,605,606,608,611],{"class":30,"line":95},[28,607,42],{"class":41},[28,609,610],{"class":45}," fetch",[28,612,613],{"class":45}," origin\n",[28,615,616],{"class":30,"line":103},[28,617,53],{"emptyLinePlaceholder":52},[28,619,620],{"class":30,"line":108},[28,621,622],{"class":34},"# 拉取并合并\n",[28,624,625,627,630,632],{"class":30,"line":114},[28,626,42],{"class":41},[28,628,629],{"class":45}," pull",[28,631,170],{"class":45},[28,633,173],{"class":45},[28,635,636],{"class":30,"line":125},[28,637,53],{"emptyLinePlaceholder":52},[28,639,640],{"class":30,"line":130},[28,641,642],{"class":34},"# 强制推送（谨慎使用）\n",[28,644,645,647,649,652,654],{"class":30,"line":136},[28,646,42],{"class":41},[28,648,167],{"class":45},[28,650,651],{"class":144}," --force-with-lease",[28,653,170],{"class":45},[28,655,173],{"class":45},[14,657,659],{"id":658},"commit-规范","Commit 规范",[10,661,662,663,670],{},"推荐使用 ",[664,665,669],"a",{"href":666,"rel":667},"https:\u002F\u002Fwww.conventionalcommits.org\u002F",[668],"nofollow","Conventional Commits","：",[672,673,674,687],"table",{},[675,676,677],"thead",{},[678,679,680,684],"tr",{},[681,682,683],"th",{},"前缀",[681,685,686],{},"含义",[688,689,690,701,711,721,731,741],"tbody",{},[678,691,692,698],{},[693,694,695],"td",{},[25,696,697],{},"feat",[693,699,700],{},"新功能",[678,702,703,708],{},[693,704,705],{},[25,706,707],{},"fix",[693,709,710],{},"Bug 修复",[678,712,713,718],{},[693,714,715],{},[25,716,717],{},"docs",[693,719,720],{},"文档更新",[678,722,723,728],{},[693,724,725],{},[25,726,727],{},"style",[693,729,730],{},"代码格式（不影响逻辑）",[678,732,733,738],{},[693,734,735],{},[25,736,737],{},"refactor",[693,739,740],{},"重构",[678,742,743,748],{},[693,744,745],{},[25,746,747],{},"chore",[693,749,750],{},"构建\u002F工具链相关",[10,752,753,754],{},"示例：",[25,755,756],{},"git commit -m \"fix: resolve login redirect issue\"",[727,758,759],{},"html pre.shiki code .sgHix, html code.shiki .sgHix{--shiki-default:#768390;--shiki-light:#6A737D}html pre.shiki code .sqRhv, html code.shiki .sqRhv{--shiki-default:#F69D50;--shiki-light:#6F42C1}html pre.shiki code .sXfbr, html code.shiki .sXfbr{--shiki-default:#96D0FF;--shiki-light:#032F62}html pre.shiki code .s6PUj, html code.shiki .s6PUj{--shiki-default:#F47067;--shiki-light:#D73A49}html pre.shiki code .ssh_m, html code.shiki .ssh_m{--shiki-default:#ADBAC7;--shiki-light:#24292E}html pre.shiki code .swcJU, html code.shiki .swcJU{--shiki-default:#6CB6FF;--shiki-light:#005CC5}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}",{"title":23,"searchDepth":38,"depth":49,"links":761},[762,763,764,765,766,767,768],{"id":16,"depth":38,"text":16},{"id":176,"depth":38,"text":176},{"id":281,"depth":38,"text":281},{"id":381,"depth":38,"text":381},{"id":462,"depth":38,"text":463},{"id":547,"depth":38,"text":547},{"id":658,"depth":38,"text":659},[770],"技术笔记","2026-04-05 14:00:00",false,"md",{},"\u002Fposts\u002Fgit-cheatsheet",{"title":5,"description":12},"posts\u002Fgit-cheatsheet",[779,780],"Git","工具","oABJmt0xLnCDJCQM9OG_7oNG3hmwbXr3XSm4y2FK5c4",[783,796,808,814,827,836,845,855,865,874,884,896,909,921,930,940,952,963,973,981,992,998,1004,1010,1018,1027,1035,1041,1049,1052],{"slug":784,"path":785,"title":786,"date":787,"tags":788,"description":23,"draft":772,"hidden":772,"published":52,"readingTime":103},"multimodal-rag-from-scratch","\u002Fposts\u002Fmultimodal-rag-from-scratch","从零实现多模态 RAG：BM25、Dense 检索、RRF 融合、MMR 重排全部手写","2026-06-30 18:00:00",[789,790,791,792,793,794,795],"RAG","多模态","AI Infra","BM25","向量检索","混合检索","实习求职",{"slug":797,"path":798,"title":799,"date":800,"tags":801,"description":23,"draft":772,"hidden":772,"published":52,"readingTime":114},"mini-llm-engine-deep-dive","\u002Fposts\u002Fmini-llm-engine-deep-dive","讲透 mini-llm-engine：从显存碎片到六大推理优化","2026-06-30 14:00:00",[802,791,803,804,805,806,807,795],"LLM","vLLM","PagedAttention","KV Cache","推理优化","投机解码",{"slug":809,"path":810,"title":811,"date":812,"tags":813,"description":23,"draft":772,"hidden":772,"published":52,"readingTime":108},"mini-llm-engine-from-scratch","\u002Fposts\u002Fmini-llm-engine-from-scratch","从零实现 LLM 推理引擎：深挖 vLLM 的六大核心优化","2026-06-30 10:00:00",[802,791,803,804,806,807,795],{"slug":815,"path":816,"title":817,"date":818,"tags":819,"description":825,"draft":772,"hidden":772,"published":52,"readingTime":826},"bytedance-recommendation-architecture-intern-interview","\u002Fposts\u002Fbytedance-recommendation-architecture-intern-interview","字节推荐架构实习生 Data 面试准备：推荐系统、实时特征与高并发八股","2026-06-09",[820,821,822,823,824],"面试","推荐系统","后端架构","实时计算","字节跳动","面向字节跳动推荐架构团队实习岗位的八股准备清单，覆盖推荐系统链路、实时数据、特征服务、高并发后端、分布式系统与项目包装。",18,{"slug":828,"path":829,"title":830,"date":818,"tags":831,"description":835,"draft":772,"hidden":772,"published":52,"readingTime":125},"high-concurrency-rate-limiting-algorithms","\u002Fposts\u002Fhigh-concurrency-rate-limiting-algorithms","高并发限流算法：固定窗口、滑动窗口、漏桶与令牌桶",[832,833,822,834,820],"高并发","限流","系统设计","面试和工程都常见的限流算法总结，讲清楚固定窗口、滑动窗口、漏桶、令牌桶、并发数限制以及分布式限流如何落地。",{"slug":837,"path":838,"title":839,"date":818,"tags":840,"description":844,"draft":772,"hidden":772,"published":52,"readingTime":95},"kafka-producer-broker-consumer","\u002Fposts\u002Fkafka-producer-broker-consumer","Kafka 入门：生产者、Broker、消费者和“消费”到底是什么意思",[841,842,843,820,821],"Kafka","消息队列","后端","用推荐系统里的用户行为日志为例，讲清楚 Kafka 的作用、Producer、Broker、Consumer、Topic、Partition、Offset 和消费语义。",{"slug":846,"path":847,"title":848,"date":818,"tags":849,"description":854,"draft":772,"hidden":772,"published":52,"readingTime":84},"leetcode-lru-merge-k-reverse-list","\u002Fposts\u002Fleetcode-lru-merge-k-reverse-list","链表与缓存高频题：LRU Cache、合并 K 个有序链表、反转链表",[850,851,852,853,820],"算法","链表","LRU","LeetCode","面试高频算法题速记，整理 LRU Cache、合并 K 个有序链表、反转链表的核心思路、复杂度和 C++ 代码。",{"slug":856,"path":857,"title":858,"date":859,"tags":860,"description":23,"draft":772,"hidden":772,"published":52,"readingTime":156},"meddococr-interpreter-source-analysis","\u002Fposts\u002Fmeddococr-interpreter-source-analysis","MedDocOCR-Interpreter 源码导读：医疗文档 OCR、结构化抽取与报告解读原型","2026-05-22 10:30:00",[861,790,862,789,863,864],"OCR","医疗 AI","Python","源码分析",{"slug":866,"path":867,"title":868,"date":869,"tags":870,"description":23,"draft":772,"hidden":772,"published":52,"readingTime":108},"cet6-writing-model-essays","\u002Fposts\u002Fcet6-writing-model-essays","六级写作范文背诵包：10 个高频话题","2026-05-20 09:00:00",[871,872,873],"English","CET6","Writing",{"slug":875,"path":876,"title":877,"date":878,"tags":879,"description":23,"draft":772,"hidden":772,"published":52,"readingTime":883},"claude-code-context-management","\u002Fposts\u002Fclaude-code-context-management","Claude Code 上下文管理机制：从 Microcompact 到 Auto Compact","2026-05-19 10:00:00",[880,881,802,791,882],"Claude Code","Agent","上下文工程",27,{"slug":885,"path":886,"title":887,"date":888,"tags":889,"description":23,"draft":772,"hidden":772,"published":52,"readingTime":895},"nanotron-llm-pretraining-framework-analysis","\u002Fposts\u002Fnanotron-llm-pretraining-framework-analysis","Nanotron 项目详解：Hugging Face 的大模型预训练框架怎么做分布式训练","2026-05-10 12:10:00",[802,890,891,892,893,791,894],"大模型训练","分布式训练","Nanotron","Hugging Face","PyTorch",19,{"slug":897,"path":898,"title":899,"date":900,"tags":901,"description":23,"draft":772,"hidden":772,"published":52,"readingTime":908},"gofoundry-go-backend-foundation-framework","\u002Fposts\u002Fgofoundry-go-backend-foundation-framework","GoFoundry 项目详解：基于 Go 的后端基础框架套件设计","2026-05-10 11:20:00",[902,903,904,905,906,842,907],"Go","后端框架","ORM","分布式缓存","分布式锁","项目架构",25,{"slug":910,"path":911,"title":912,"date":913,"tags":914,"description":23,"draft":772,"hidden":772,"published":52,"readingTime":883},"cloudvault-go-cloud-storage-system","\u002Fposts\u002Fcloudvault-go-cloud-storage-system","CloudVault 项目详解：基于 Go 的云端存储与网盘系统架构设计","2026-05-10 10:30:00",[902,915,916,917,907,918,919,920],"云存储","网盘系统","分布式系统","Redis","RabbitMQ","Elasticsearch",{"slug":922,"path":923,"title":924,"date":925,"tags":926,"description":23,"draft":772,"hidden":772,"published":52,"readingTime":929},"openclaw-source-code-analysis","\u002Fposts\u002Fopenclaw-source-code-analysis","OpenClaw 源码导读：个人 AI 助手的网关、通道、插件与运行时架构","2026-05-08 16:30:00",[927,881,791,928,864],"OpenClaw","TypeScript",20,{"slug":931,"path":932,"title":933,"date":934,"tags":935,"description":23,"draft":772,"hidden":772,"published":52,"readingTime":108},"flow-matching-generative-models","\u002Fposts\u002Fflow-matching-generative-models","Flow Matching：从噪声到数据的连续流生成模型","2026-05-07 00:00:00",[936,937,938,939],"生成模型","Diffusion","Flow Matching","深度学习",{"slug":941,"path":942,"title":943,"date":944,"tags":945,"description":23,"draft":772,"hidden":772,"published":52,"readingTime":151},"database-ai-week4","\u002Fposts\u002Fdatabase-ai-week4","Week 4：数据库速成——从 Storage、Index、Query Optimization 到 Vector DB 与 RAG","2026-05-05 12:00:00",[946,947,948,789,949,950,951],"数据库","CMU 15-445","Vector DB","LLM Memory","Query Optimization","Caching",{"slug":953,"path":954,"title":955,"date":956,"tags":957,"description":23,"draft":772,"hidden":772,"published":52,"readingTime":156},"distributed-systems-week3","\u002Fposts\u002Fdistributed-systems-week3","Week 3：分布式系统速成——MapReduce、Raft、容错与 Distributed KV Store","2026-05-05 11:00:00",[917,958,959,960,961,962,881],"MIT 6.824","MapReduce","Raft","KV Store","Ray",{"slug":964,"path":965,"title":966,"date":967,"tags":968,"description":23,"draft":772,"hidden":772,"published":52,"readingTime":151},"gpu-inference-acceleration-week2","\u002Fposts\u002Fgpu-inference-acceleration-week2","Week 2：GPU 与推理加速——从 Kernel、算子融合到 LLM Serving","2026-05-05 10:00:00",[939,969,970,802,971,803,972],"GPU","推理加速","CMU 10-414","TensorRT",{"slug":974,"path":975,"title":976,"date":977,"tags":978,"description":23,"draft":772,"hidden":772,"published":52,"readingTime":826},"dl-framework-autograd-mini","\u002Fposts\u002Fdl-framework-autograd-mini","Week 1：DL 框架与 Autograd——从计算图、反向传播到 Mini Autograd 实现","2026-05-05 09:00:00",[939,979,894,971,980],"Autograd","Mini Framework",{"slug":982,"path":983,"title":984,"date":985,"tags":986,"description":23,"draft":772,"hidden":772,"published":52,"readingTime":125},"lock-free-concurrency-notes","\u002Fposts\u002Flock-free-concurrency-notes","无锁并发入门：从 CAS 到 Atomic Ring Buffer","2026-04-25",[987,988,989,990,991],"C++","并发","无锁编程","性能优化","量化开发",{"slug":993,"path":994,"title":995,"date":996,"tags":997,"description":23,"draft":772,"hidden":772,"published":52,"readingTime":62},"agent-memory","\u002Fposts\u002Fagent-memory","Agent 对话记忆化：从原理到实现","2026-04-24",[802,881,789,820],{"slug":999,"path":1000,"title":1001,"date":996,"tags":1002,"description":23,"draft":772,"hidden":772,"published":52,"readingTime":84},"llm-context-compression","\u002Fposts\u002Fllm-context-compression","LLM 上下文五层压缩机制详解",[802,881,1003,820],"上下文压缩",{"slug":1005,"path":1006,"title":1007,"date":1008,"tags":1009,"description":23,"draft":772,"hidden":772,"published":52,"readingTime":103},"cpp-concurrency-basics","\u002Fposts\u002Fcpp-concurrency-basics","C++ 并发编程入门：从数据竞争到线程池","2026-04-15",[987,988,820,991],{"slug":1011,"path":1012,"title":1013,"date":1014,"tags":1015,"description":23,"draft":772,"hidden":772,"published":52,"readingTime":31},"travel-in-shenzhen","\u002Fposts\u002Ftravel-in-shenzhen","XCPC 深圳游记","2026-04-13",[1016,987,1017],"XCPC","比赛",{"slug":1019,"path":1020,"title":1021,"date":1022,"tags":1023,"description":23,"draft":772,"hidden":772,"published":52,"readingTime":89},"backend-stack-deep-dive","\u002Fposts\u002Fbackend-stack-deep-dive","后端五件套：FastAPI \u002F Node.js \u002F SQLAlchemy async \u002F PostgreSQL \u002F Docker 面试速通","2026-04-07",[843,1024,1025,1026,820],"FastAPI","PostgreSQL","Docker",{"slug":1028,"path":1029,"title":1030,"date":1031,"tags":1032,"description":23,"draft":772,"hidden":772,"published":52,"readingTime":84},"deepscientist-tech-stack","\u002Fposts\u002Fdeepscientist-tech-stack","DeepScientist 技术栈全解析：一个 AI 科研平台的架构设计","2026-04-06",[1033,1024,1034,1025,820],"全栈","Next.js",{"slug":1036,"path":1037,"title":1038,"date":1031,"tags":1039,"description":23,"draft":772,"hidden":772,"published":52,"readingTime":95},"minicode-source-analysis","\u002Fposts\u002Fminicode-source-analysis","MiniCode 源码解析：用 5000 行 TypeScript 实现一个 AI 编程助手",[928,1040,802,864,820],"CLI",{"slug":1042,"path":1043,"title":1044,"date":1031,"tags":1045,"description":23,"draft":772,"hidden":772,"published":52,"readingTime":62},"nova-theme-implementation","\u002Fposts\u002Fnova-theme-implementation","我是怎么从零实现 Nova 主题的",[1046,1047,1048],"Hexo","前端","开源",{"slug":1050,"path":775,"title":5,"date":771,"tags":1051,"description":23,"draft":772,"hidden":772,"published":52,"readingTime":38},"git-cheatsheet",[779,780],{"slug":1053,"path":1054,"title":1055,"date":1056,"tags":1057,"description":23,"draft":772,"hidden":772,"published":52,"readingTime":49},"github-actions-intro","\u002Fposts\u002Fgithub-actions-intro","GitHub Actions 入门：自动化你的工作流","2026-04-04 09:00:00",[1058,1059,1060],"GitHub Actions","CI\u002FCD","自动化",1782796012131]