Git切换分支遇到local change怎么办?从报错原理到stash实操全解
昨天下午我在 Git 切换分支时打算从 feature/login 切回 master结果 Git 甩回来一大段英文“Your local changes to the following files would be overwritten by checkout. Please commit your changes or stash them before you switch branches. Aborting.” 第一反应是烦躁第二反应是庆幸。这段报错不是系统抽风反而是 Git 在保护我改到一半的代码。真正怕的不是它拦你而是你在一堆本地改动里闭着眼睛硬切最后发现文件被覆盖、改动全部蒸发。这篇东西专门聊 Git 切换分支时遇到 local change 怎么办覆盖从报错原理、最常用的 stash 操作到各种“明明没改却报错”的疑难杂症新手和带过团队的老人都能直接抄作业。1. 换分支被 local change 拦住的真实场景与原理1.1 你最可能碰到的三类报错长什么样Git 切换分支checkout 或 switch时只要工作区里有和切换动作冲突的本地修改它就会拒绝执行。我总结下来日常碰到的报错基本就三类形态对应不同的危险等级报错关键词触发条件危险程度Your local changes ... would be overwritten by checkout已跟踪文件被修改过目标分支的这个文件跟当前 HEAD 不一致中改动还没提交强制切换会丢The following untracked working tree files would be overwritten by checkout工作区有未跟踪的新文件目标分支恰好也要生成同名文件高文件是新建内容被覆盖基本救不回来The following untracked working tree files would be removed by checkout未跟踪文件与目标分支切换时的删除操作冲突高同理没纳入版本控制的文件没有历史可追溯第一次见这些报错的人很容易把注意力放在“怎么强制通过”上。我建议反过来先把每一类报错对应的文件状态搞清楚因为处理方式完全不同。已经跟踪的文件改动可能有价值应该暂存或提交未跟踪的新文件Git 默认是不管你的但它也知道这个文件如果被目标分支的同名文件覆盖会很惨所以它会停下问你这个文件到底要不要留。1.2 Git 为什么这么“保守”很多人觉得 Git 应该像“瞬间移动”一样自由切换凭什么我一堆没提交的代码你还要拦我。这里有个底层原因切换分支本质上不是把你整个人搬过去而是要把工作区里的文件内容替换成目标分支的内容。Git 在执行切换前会对比三份快照——当前 HEAD、目标分支、你的工作区。只要工作区和目标分支在某个路径上出现了“内容不一致”它就没法既保留你的手写改动又满足目标分支的文件内容二者只能选一个。所以 Git 宁可停下来问你要明确指令也不自作主张覆盖。我习惯把这个机制类比成你在手机上编辑一段文字还没保存这时候突然要导入一份同名文件。系统一定弹窗问你是覆盖、另存、还是先存草稿。Git 的 local change 提示就是这个弹窗只是它的命令行版本不太友好直接把责任抛给了你。理解了这层你就不会再觉得 Git 是个死板的拦路虎反而会主动配合它给出的三条路提交、暂存、丢弃。1.3 先学会看 git status再决定下一步处理任何 local change 之前第一件事永远是git status不是看报错正文也不是直接查网络。git status会明确告诉你三类信息Changes not staged改了没 add、Changes to be committed已经 add 还没 commit、Untracked files完全没纳入版本控制。这三类对应的后续操作完全不同我见过太多人一上来就git checkout -f强制切结果把自己的半成品代码全冲了。$ git status On branch feature/login Changes not staged for commit: modified: src/pages/Login.jsx Untracked files: src/pages/login.test.js看到src/pages/Login.jsx是 modified说明它有提交价值或者暂存价值看到 Untracked files说明它还是个不被 Git 跟踪的孤儿文件。这里有个经验凡是你写了很久、还打算要的改版代码哪怕只是半成品我都建议先走 stash不要赌自己的记忆。只要你肯在这一步多花十秒钟看状态后面百分之八十的坑都能提前躲开。2. 处理 local change 的几种靠谱方案2.1 改完了就提交一劳永逸的常规操作如果当前的改动本身就是一段完整、能通过编译或测试的工作最省事的做法就是直接提交。切分支前 commit切回来以后代码还在历史里并且你有完整的提交信息说明自己当时做了什么。唯一的代价是提交历史会多一条 commit但这对团队协作来说根本不是问题反而更安全。$ git add src/pages/Login.jsx $ git commit -m feat: 登录页表单校验完整实现 $ git switch master要注意的是提交动作不适合“临时切出去看一下线上问题马上还要回来继续写”的场景。因为切出去再切回来时你可能会在同一批文件上继续工作反而多出一个半成品 commit。如果团队走的是严格的 code review 流程这种半成品 commit 推到远端之后还会污染 MR更麻烦。所以判断标准很简单改动是否已经形成一个完整单元是的就提交不是的就往下看 stash。2.2 stash 暂存切分支后还能原样回来stash 是把当前工作区改动“打包收进仓库”让工作区恢复干净等你切换完分支、办完事再把它解包回来。它特别适合那种改到一半、代码还不完整、但又必须去别的分支修热点的时刻。基本操作是一套组合拳stash push 存起来switch 切走switch 切回stash pop 取回。$ git stash push -m WIP: 登录页校验逻辑 $ git switch master # 在 master 上干完活 $ git switch feature/login $ git stash pop这里我建议养成给 stash 加-m写注释的习惯。git stash list会列出所有暂存条目如果存了好几条没有注释的话你根本分不清哪条是登录页、哪条是样式稿。另外git stash pop和git stash apply的区别很多人搞混pop 取出后自动丢弃仓库里的那条记录apply 则保留记录、适合同一个 patch 需要套用到多个分支的场景。默认推荐用 pop取完就没有残留stash 栈越来越干净如果你心里没底可以先 apply 确认无误再手动 drop。2.3 丢弃改动与强制切换千万别变成默认习惯确定某段改动就是不要了才考虑丢弃。Git 2.23 以后提供了git restore老版本用git checkout -- file两个命令都是拿 HEAD 里的版本覆盖工作区文件。更粗暴的还有git clean -fd专门清掉未跟踪文件这个命令我几乎不推荐任何人日常手敲因为它不会问你“确认吗”直接删而且删了没有任何版本历史兜底。# 丢弃单个已跟踪文件的改动 $ git restore src/pages/Login.jsx # 丢弃整个工作区的已跟踪文件改动 $ git restore . # 强制切换分支并丢弃冲突区域 $ git switch -f master强制切换参数是老朋友的git checkout -f新版对应git switch -f语义都是“按目标分支老老实实切工作区里会被覆盖的改动不要了”。需要特别说一句即使你确定要丢弃也强烈建议先git stash push兜个底哪怕过了两天确定不需要再 drop 掉也不迟。我见过太多人-f切过去之后才后悔结果改动已经无影无踪。Word 文档至少还有自动保存Git 工作区里的半成品可没有废纸篓。2.4 只想带部分文件走文件级粒度操作有时候你不想把整个工作区的改动都 stash 掉只希望切分支时带上某几个文件其余留在原地。这种情况可以做文件级别的 stash也可以先用git add部分暂存再配合 restore 处理其余文件。git stash push后面可以直接接路径它只会把这个路径的改动存进 stash其他文件继续保持原样但这样的话其他文件可能仍然会挡住分支切换所以用之前一定要看清楚哪些文件才是冲突源。$ git stash push -m 只暂存登录页 src/pages/Login.jsx $ git stash push -m 只暂存工具函数 src/utils/formatter.js这种文件级操作在“同一分支有多个互不相干的改动”时特别有用比如登录页面和工具函数是两个独立任务你本来就不该放在一起提交。代码评审的人看到混合提交会非常头疼文件级 stash 能让你把一个分支里的零散改动拆成几次干净的临时保存配合之后的 commit 也能分开历史整体体验会好很多。3. 实操从报错到顺利切换的完整流水账3.1 报错后先别慌三步检查法我在团队里带人处理这类问题总结了一个三步检查法第一步看git status确认到底是 tracked 修改、staged 修改还是 untracked 文件第二步看git diff评估这些改动的价值决定是留还是丢第三步对照目标分支里即将被影响的文件清单确定要不要为其中某个文件专门处理。三步走完你基本就能在十秒内选出方案。$ git status $ git diff $ git diff --stat这里的git diff --stat是我非常喜欢的一条命令它用精简易读的表格告诉你哪些文件改了多少行不会像完整 diff 那样刷屏。真要细看某段代码再单独展开。你不需要用眼睛把所有大段 diff 都过一遍重点是确认没有被误改的文件。如果有个文件你根本没见过但确实显示了 modified那多半是换行符、权限位这类隐形变化这种情况留在第 4 节专门讲。3.2 stash 切换的完整终端实录下面是一段我昨天真实操作过的完整流程方便你照着抄。场景是我在 feature/login 上改了登录页线上有个小问题必须回 master 看我先把改动存起来切走处理完线上问题再切回来把改动取回。$ git status On branch feature/login Changes not staged for commit: modified: src/pages/Login.jsx Untracked files: src/pages/login.test.js $ git stash push -u -m WIP: 登录页表单校验单元测试 Saved working directory and index state WIP: 登录页表单校验单元测试 $ git switch master Switched to branch master # master 上修复/排查问题提交并推送 $ git add hotfix.js $ git commit -m fix: 线上问题快速修复 $ git switch feature/login Switched to branch feature/login $ git stash pop On branch feature/login Changes not staged for commit: modified: src/pages/Login.jsx Untracked files: src/pages/login.test.js Dropped refs/stash{0}注意我在git stash push里加了一个-u意思是把 untracked 文件也一起收进来。为什么因为login.test.js虽然是新文件但如果目标分支将来也有同名测试文件Git 切换时照样会卡你。平时 stash 默认不碰未跟踪文件所以经常出现“stash 完了切分支还是报 untracked file 冲突”的乌龙。需要保存未跟踪文件时记住这个参数是最常见的坑之一。3.3 拉取与 rebase 场景下的 autostash 配置local change 挡住分支操作不仅发生在切换分支时git pull带 rebase 一样会遇到。默认情况下工作区有修改时执行git pull --rebaseGit 会拒绝扫描或直接报错要求你先处理本地改动。手动 stash 再来一次虽然可行但次数多了很累。Git 提供了一个自动暂存选项让你在满足条件时自动 stash 并在操作完成后自动 pop 回来。$ git pull --rebase --autostash也可以把它写成全局配置省得每次敲参数。配置之后只要 pull 遇到需要暂存的情况Git 会自己处理操作完自动恢复工作区改动。因为我平时习惯 rebase 工作流这条配置几乎是每天都离不开的小帮手。当然自动恢复不等于毫无风险如果恢复时产生冲突还是要按冲突处理流程走但至少它把你从枯燥的手工暂存里解放出来了。$ git config pull.rebase true $ git config rebase.autoStash true3.4 TortoiseGit 里的图形化对应操作不用命令行的同学在 TortoiseGit 里碰到这个报错也很常见。右键对应仓库目录选择 TortoiseGit → Switch/Checkout如果本地有未提交改动窗口左下角会列出有冲突的文件并让你在几种处理方式里做选择。不同版本的按钮措辞会有点差别但核心逻辑就三种丢弃变更、保留并存起来、取消操作。我自己的经验是在 TortoiseGit 里千万不要闭着眼睛点“OK”。先点开那个文件列表判断里面是哪个文件。如果文件状态写着 modified说明你要么先提交、要么让它保存起来如果写着 unversioned那就是未跟踪文件需要决定是否保留不能直接选丢弃。图形界面最常见的误操作就是把“Discard”当成“确定”结果一个文件的所有改动瞬间消失比命令行下git restore还隐蔽因为它不一定弹第二次确认。4. 常见问题与排查实录4.1 明明没改过为什么一直提示 local change这个现象太经典了前一天代码还好好的第二天一开仓库随便切个分支就冒出“local changes would be overwritten”打开文件却看不出任何改动。真实原因是文件内容背后的元数据变了。最常见的两个元凶一个是文件权限位被改常见于 Linux/macOS 下文件权限从 644 变成 755另一个是换行符差异Windows 下 Git 把工作区 CRLF 转成仓库 LF再检出时版本不一致就会被判定为 modified。权限问题的解法很简单我基本会给所有 Linux/macOS 仓库统一配一条git config core.fileMode false意思是不再跟踪文件权限位变化这样 Git 就不会因为一个脚本少了执行权限就天天刷屏。换行符问题则需要看你的.gitattributes和core.autocrlf配置。如果你手上已经有一大堆被误判的文件可以先用git add --renormalize .重新计算一遍文件内容让仓库状态回归正常。这个配置在不同系统、不同编辑器的组合里很容易出问题尤其是团队里有人用 Windows 有人用 macOS。我建议项目根目录放一份明确的.gitattributes从根本上统一行尾而不是指望每个人都手动配置全局 autocrlf。4.2 untracked 文件挡住切换四选一未跟踪文件造成冲突时的处理思路很简单你得让它从“堵路”变成“不堵路”。通常有四种选择——把文件先挪到仓库外临时目录把不需要的文件加进.gitignore直接提交到当前分支或者确认无用后删除。挪动和忽略是最常被推荐的删除永远放在最后因为未跟踪文件不像版本控制文件那样有历史可回放。# 临时挪走 $ mv src/config/local.js ~/backup-local.js # 忽略 $ echo src/config/local.js .gitignore # 确认无用再删 $ rm src/config/local.js我自己处理这种问题时会先问一个问题这个未跟踪文件是某个功能必需的配置吗如果是本地敏感配置那它本来就不该被提交我会直接写进.gitignore并保留原文件然后告诉 Git“别管我”。如果只是临时调试文件挪走或者删除都行。核心原则是不要为了切分支把还没决定去留的新文件直接删了因为它是你辛苦敲出来的心血删掉后没有任何后悔药。4.3 stash pop 出来的冲突怎么收拾stash 是把双刃剑存的时候很爽pop 的时候偶尔会给你带来一场“合并冲突”。比如你在分支 A 上存了改动切到分支 B 后又顺手改了同一个文件再切回 A 执行 stash pop两边改到同一行Git 就会停下来报冲突。好消息是 pop 在冲突情况下不会丢弃 stash 条目所以你的暂存内容还在可以放心处理。遇到这种情况先git status看 Unmerged paths 下列出的文件。手工打开文件你会看到 Updated upstream、、 Stashed changes这种冲突标记按你的意图保留一部分删掉标记然后git add标记为已解决。最后确认代码正确再手动git stash drop把这份已经解包完的旧 stash 记录清理掉。这个过程跟普通合并冲突的处理逻辑完全一样只是双方来源从“两个分支”变成了“当前分支和旧 stash”。4.4 在 master 写了一半的代码怎么挪到 dev很多初学者都有“代码写错分支”的经历。比如你人在 master 上吭哧吭哧写新功能写了一半才发现应该去 dev 分支。如果改动还没提交简单stash 大法搞定但如果已经 commit 了就要考虑把提交挪过去。我提供一个稳妥的组合拳先把当前提交复制到 dev再把 master 回退。$ git switch dev $ git cherry-pick master # 把 master 最新提交摘到 dev $ git switch master $ git reset --hard HEAD~1 # 让 master 回到提交前这里要提醒一句如果 master 已经被推到远端并且有别人也在用reset --hard属于改写历史直接推上去会把远端搞乱。稳妥做法是在远端基于当前状态继续工作或者用带新提交的结束方式处理尽量不重写已经公开的历史。但如果是本地还没推的 commit这套组合拳非常高效几乎不会留下垃圾历史团队里很多人用这招解决切错分支的问题。4.5 子模块和跳过跟踪文件造成的伪 local change如果你的仓库用了 submodule或者用了--skip-worktree/--assume-unchanged这类“眼不见为净”的标记切换分支时也会出现莫名其妙的 local change。子模块本身是一个独立仓库主仓库只记录它的 commit 指针。当子模块内部有未提交改动时主仓库的git status会显示子模块目录 dirty这时切分支也可能被拦。遇到子模块抱怨先进入子模块目录用同样的思路处理它内部的改动再回到主仓库操作。如果某个本地配置文件总是被 Git 盯上但你又不想把它提交可以用git update-index --skip-worktree file让 Git 忽略这个文件的后续变动。注意这是治标不治本换机器重新 clone 时标记就失效了所以重要的配置还是走.gitignore或者环境变量更靠谱。4.6 手滑把 stash 或者改动删了还有救吗先说结论git stash的条目本质是一个 commit 对象所以就算git stash drop误删了最新一条它短期内还留在 Git 对象库里有可能被救回来。常见的找回思路是先用git fsck扫描“悬空”的提交对象再在列表里试探性地找出老 stash 对应的那笔 commit。$ git fsck --no-reflogs --unreachable $ git stash apply 找到的commit这个操作的成功率取决于 stash 条目是否已被 Git 的垃圾回收机制清理所以越早救越好。相比之下如果你没有经过 stash直接git restore .把工作区覆盖了那基本就是真的没了。我在这件事上的血泪教训是凡是不确定要不要的改动先用 stash 存一下就算最后没用上一条git stash drop带走成本不过十几秒却买了一份致命的后悔药。5. 换分支前的小习惯比各种命令更值钱5.1 五秒钟的习惯先 status 后 switch很多人被 local change 卡住根本原因是换分支之前从不看状态。哪怕你是 Git 老手我也建议在关键切分支动作前养成习惯性地敲一下git status和git branch --show-current。前者看工作区后者确认自己在哪。我看过太多人因为当前分支和心里想的不一致导致一长串操作全部作用在错误分支上最后只能靠 reflog 慢慢考古。这个习惯真的只需要五秒但能省掉后面可能半小时的恢复操作。更细一点可以在切换分支之前顺手git diff --stat心里有数哪些文件被动过。如果我预感到改动很多我会直接备注一条git stash push -m的信息而不是裸 stash因为裸 stash 在 log 里区分度太低。5.2 给分支切换建立一个“清理仪式”我个人的做法是把切分支当成一个“清理仪式”先确认工作区没有价值不明的改动再切。如果还有半成品就明确它是走 stash 还是走 WIP commit绝不带着“应该没问题吧”的侥幸心理硬切。仪式感听起来玄学但它背后的逻辑很朴素Git 的切换机制本质是同步文件内容不干净的上下文就是把不确定性从当前操作传染到了下一个操作。另一个非常实用的小技巧是在 shell 的提示符里显示当前分支名或者直接用 IDE 的分支状态栏。你只要一眼能看到自己在哪个分支、工作区有没有改动图标切错分支的概率会直线下降。前端工程里很多人的日常是前后端分支并行同一个目录里切来切去没有这个提示靠脑子记根本不可靠。5.3 把 local change 报错当成一次免费提醒我现在遇到这个报错第一反应已经不是烦躁而是顺手敲git stash push -u -m。Git 拦你是好事不是坏事。如果 Git 没有 warning靠自己肉手做“先备份整个目录再切分支”这种事情早晚会在最忙乱的一天漏掉一个文件。它把这些冲突提前暴露出来实际上是在逼你建立规范的工作流——文件要么干净要么有明确去向。最后再分享一个我自己的固定动作每次切分支前我都会把git status跑一遍然后问自己一句当前工作区里每一处改动是什么、还要不要。回答不上来的就一律 stash。有了这个习惯Git 的 local change 报错对我来说已经变成一条温和的提醒而不是事故现场。这个习惯我建议你也试试坚持两周你会发现自己再也不会被切分支的报错搞得手忙脚乱。

相关新闻

SpringBoot家政服务平台毕设实战:从数据库设计到订单状态机

SpringBoot家政服务平台毕设实战:从数据库设计到订单状态机

每年毕业季都有不少人带着类似的标题来找我——"JavaSpringBoot家政服务平台""家政服务管理平台Web版"。说实话,这类题目在计算机毕设里属于标准意义上的"稳妥选择":业务场景清晰、用户角色明确、技术栈主流,不…

2026/10/9 3:04:53 阅读更多 →
Java+SQL Server 2000超市管理系统:JDBC连接、事务处理与数据库迁移实战

Java+SQL Server 2000超市管理系统:JDBC连接、事务处理与数据库迁移实战

简介:面向Java初学者与课程设计人群的超市管理系统完整源码包,基于Java和SQL Server 2000数据库实现,适合作为课程设计、毕业设计或Java桌面应用开发的入门参照。压缩包共218个文件,压缩后仅2.76MB,内含编译后的class文…

2026/10/9 3:04:53 阅读更多 →
自托管 HTTP 隧道实战:用 Go 实现内网穿透与远程访问

自托管 HTTP 隧道实战:用 Go 实现内网穿透与远程访问

这次的实操目标很明确:一个用 Go 写的 self-hosted HTTP 隧道项目,项目名Smuf。说直白一点,它就是解决"本地服务怎么安全暴露到公网"这个问题的工具,而且强调数据走自己的服务器,不依赖第三方中转平台。如果…

2026/10/9 3:03:53 阅读更多 →

最新新闻

蓄电池与超级电容混合储能Simulink仿真:能量管理策略与模型搭建

蓄电池与超级电容混合储能Simulink仿真:能量管理策略与模型搭建

做混合储能仿真的朋友,多少都经历过这种场面:负载一开,蓄电池电流瞬间拉满,SOC曲线像过山车,控制器忙得团团转,可效果始终不尽如人意。其实问题往往不在控制器本身,而在能量管理策略没有把"…

2026/10/9 3:34:14 阅读更多 →
云原生架构白皮书精读:容器化部署与Kubernetes编排落地指南

云原生架构白皮书精读:容器化部署与Kubernetes编排落地指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/9 3:34:14 阅读更多 →
告别手动部署:我用XinServer三天完成项目交付的全过程

告别手动部署:我用XinServer三天完成项目交付的全过程

交付项目最怕的不是写代码,而是代码写完之后那一整套部署、测试、交接的烂摊子。我上个月刚交付了一个数据看板类的管理系统,从开发完成到客户那边能打开页面看到真实数据,前后只用了三天。这中间起最大作用的,就是 XinServer 这个…

2026/10/9 3:34:14 阅读更多 →
C# 完全端口 TCP 服务器与客户端源码实战:从 Socket 到生产级参数调优

C# 完全端口 TCP 服务器与客户端源码实战:从 Socket 到生产级参数调优

简介:这份源码资源面向具备一定C#与网络编程基础的开发者,聚焦Windows平台下高性能TCP通信的实现与验证。核心采用完成端口(IOCP)模型编写服务器端,并配套完整客户端,可用于高并发场景下的收发性能测试与网…

2026/10/9 3:34:14 阅读更多 →
圆柱壳自由振动必算:Sanders理论+切比雪夫多项式求模态全流程

圆柱壳自由振动必算:Sanders理论+切比雪夫多项式求模态全流程

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/9 3:34:14 阅读更多 →
从元器件到LM317可调电源:零基础硬件电路设计实战指南

从元器件到LM317可调电源:零基础硬件电路设计实战指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/9 3:33:14 阅读更多 →

日新闻

Java时间API实战:LocalDate、Date与ZonedDateTime的转换与避坑指南

Java时间API实战:LocalDate、Date与ZonedDateTime的转换与避坑指南

Java时间API这个话题,隔三差五就会在群里被翻出来讨论一次。上周还有个同事线上处理一个订单超时问题,排查到最后发现是ZonedDateTime序列化后时区丢了,用户在下单当天晚上看到的时间整整差了8个小时。这类问题几乎每个做Java开发的人都遇到过…

2026/10/9 0:00:49 阅读更多 →
EasyTier实践:从NAT穿透到子网代理的异地组网部署与排错

EasyTier实践:从NAT穿透到子网代理的异地组网部署与排错

前几个月我手头有好几台机器需要互相访问:办公室台式机、家里 NAS、还有一台云主机。如果只是偶尔传个文件倒还好,问题是工作场景经常要在几处环境之间来回切换,每次都先登录跳板机再层层代理,实在折腾。我先后试过端口映射、自建…

2026/10/9 0:00:49 阅读更多 →
AI Agent工程实战:从七要素到七个决策点的系统设计指南

AI Agent工程实战:从七要素到七个决策点的系统设计指南

AI Agent 这个词在过去一年里被反复提及,但真正动手搭过一套能跑起来的 Agent 系统的人都知道,从"知道它是什么"到"让它稳定干活"之间隔着一整套工程决策。我前后参与过几个 Agent 项目的落地,从最初用现成框架拼装&…

2026/10/9 0:01:50 阅读更多 →

周新闻

KT148A语音芯片外挂8002D功放的工程实践指南

KT148A语音芯片外挂8002D功放的工程实践指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/8 15:26:32 阅读更多 →
LLC谐振变换器增益公式推导:从FHA等效到完整归一化表达式

LLC谐振变换器增益公式推导:从FHA等效到完整归一化表达式

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/8 15:26:40 阅读更多 →
ARM架构深度解析:从RISC设计理念到交叉编译实战

ARM架构深度解析:从RISC设计理念到交叉编译实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/8 10:10:36 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/8 21:13:17 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/8 15:26:17 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/7 13:34:55 阅读更多 →