乐于分享
好东西不私藏

AI写代码的一天,代码仓库「炸了」

AI写代码的一天,代码仓库「炸了」

「Git 从一开始就不是为 AI 设计的。它连人类自己都伺候不好,凭什么让机器人来用?」「工具越强,死法越多。避坑指南比工具本身重要十倍。」

某个晚上又熬到两点,盯着终端里那行 git push --force-with-lease 的绿色输出发呆。屏幕上还留着两小时前那场冲突大战的残骸,未提交的修改、四分五裂的分支、和一个内心「万马奔腾」的我。突然觉得,这事儿值得写下来。

⭐点击「极客精益」→「...」→ 设为星标,觉得不错就点赞👍转发🔁推荐❤️


01. 上个月,我的仓库炸了

AI Agent 面对燃烧的代码仓库

上个月我让一个 AI Agent 帮我修三个 Issue。五分钟之后,仓库炸了。键盘上还残留着我刚才抓头发时蹭到的汗渍,手指滑腻腻的。

不是比喻。是真炸了。

工作区一团乱麻,两个分支的代码搅在一起,像被搅拌机打过。git status 的输出红得刺眼。那种红,你大半夜盯着,手边咖啡杯底的水渍在桌上留下一圈淡褐色的印迹,CPU 风扇嗡嗡转着,屏幕发出的光映在你脸上惨白惨白的,你脑子里只剩下一个念头:我刚才到底让它干了什么?

这事儿怪不了 AI。它是按指令办事的。问题出在我给了它一把锤子,却没告诉它哪个是钉子哪个是自己的手指头。

Git 从一开始就不是为 AI 设计的。它连人类开发者自己都伺候不好。你想想你上次解决合并冲突时骂了多少句脏话,凭什么让一个只会生成文本的大模型来裸操?

可现实就是,AI Agent 正在疯狂涌入。Claude Code、OpenCode、Cursor等,这些工具都在让 AI 直接操作文件系统。并行处理 Issue、跨仓库改代码、自动提 PR。这种玩法,传统 Git 工作流根本扛不住。

所以有了这篇文章。不讲课。就是聊聊我这段时间折腾出来的心得。

02. 先看一眼地图

工具有很多。按用途分呢,三大类。

第一类:平台 CLI。 就是代码托管平台的「遥控器」,GitHub 的 gh、GitLab 的 glab、Gitea 的 tea。它们做的事情一模一样:让 AI Agent 在终端里操作远程仓库,提 Issue、建 PR、触发 CI,全程不需要开浏览器。

工作原理也差不多。注入 Token 完成鉴权,解析本地 Git 上下文(当前分支、远程地址),最后把命令转化成 API 请求发到云端。区别在生态。gh 走 GitHub 的 GraphQL API,glab 跟 GitLab CI/CD 深度绑定,tea 是单文件静态二进制,最适合塞进 Docker 给私有化部署用。

拿 gh 举例,一条 gh pr create --fill,背后干了三件事:读取本地 HEAD 获取当前分支名,提取最近的 commit 信息当默认 PR 描述,一条 GraphQL 请求把 PR 建好并自动关联 Issue。对 AI Agent 来说,这就是它的「远程遥控器」。

第二类:Git 核心 + 高级扩展。 就是 Git 本身,加上 git worktreegit-repo 这些。本地操作的基石。普通 git 够用,但不够好用。git worktree 才是主角。

第三类:新一代 VCS 与多仓编排。 像 Jujutsu(jj)、Meta Sapling、Radicle。还有 Google 的 git-repo。这些工具从根上重新设计了版本控制的某些维度。

其中 jj 跟 Git 完全兼容对象层,但把「冲突」当成一等公民来对待。这个思路对 AI Agent 来说简直是天作之合。Sapling 是 Meta 开源的高性能 VCS,针对千万级文件的巨型 Monorepo 做了极限优化。Radicle 走 P2P 去中心化路线,不需要中央服务器。git-repo 则是 Google 为 Android 开发的跨仓库编排工具。

这些工具目前还偏小众。但它们的思路,很可能影响未来两三年 AI 工具链的架构方向。

我拉了个小表:

类别
代表工具
管什么
对 Agent 的价值
平台 CLI
gh
 / glab / tea
远程仓库 API
无头操控云端:提 PR、触发 CI、管理 Issue
Git 核心+扩展
git
 / git-worktree / git-repo
本地文件状态
物理隔离沙盒:多任务并发不打架
新一代 VCS
jj
 / Sapling / Radicle
重构版本模型
容错与扩展:冲突不卡死、仓库不爆炸

它们不冲突。互补。最好的方案是把它们组合起来用。

工具全景金字塔图

03. 影分身之术:Git Worktree 深度拆解

好,这里我要认真讲一个东西。Git Worktree。

如果你之前没听过它,正常。太多人用了十年 Git 都不知道有这功能。但怎么说呢,它可能是 AI 时代最重要的 Git 特性。没有之一。

先理解一个问题:为什么多个 AI Agent 不能同时在一个仓库里干活?

多个平行文件夹带影分身标志

因为 Git 的单目录设计有个天然瓶颈:HEAD、暂存区(index)和工作目录是全局共享的。

假设 Agent A 在 feature/login 分支上改文件,改到一半,Agent B 接到紧急任务要切到 main 分支修 Bug。它一执行 git checkout main,问题来了。工作区里还有 Agent A 留下的一堆未提交的修改。Git 要么拒绝切换(「error: Your local changes... would be overwritten」),要么硬切过去导致文件冲突。不管哪种,都是灾难。

传统解法是什么?git stash 压栈,切分支干活,再 git stash pop 弹栈。但这东西对 AI 来说太脆弱了。弹栈时遇到冲突直接跪,而且 LLM 根本不懂什么叫「暂存区里的半成品状态」。

Git Worktree 的解决方式,暴力且优雅。

它的底层原理其实不复杂。执行 git worktree add ../project-hotfix -b hotfix/issue-911 origin/main 时,Git 并不会复制整个 .git 目录。它做了三件事。

第一,在主仓库的 .git/worktrees/hotfix/ 下创建一套 独立的元数据,包括这个工作树自己的 HEAD、自己的暂存区(index)、自己的日志。

第二,在新建的 ../project-hotfix 目录下只放一个文本文件 .git,内容就一行:gitdir: /path/to/main/.git/worktrees/hotfix。注意,.git 是个文件,不是目录。这行文本就像一条「脐带」,告诉 Git:你的灵魂在主仓库里,但你的身体是独立的。

第三,所有巨大的对象存储(objects/)、分支引用(refs/)、配置信息,全部通过 $GIT_COMMON_DIR 路由回主仓库共享。如果打开 .git/worktrees/<name>/ 目录,你会看到里面有个叫 commondir 的小文件,里面只有一行:../。它指向主仓库的 .git,相当于一个「指向本体的导航坐标」。每个 Worktree 用这个文件找到共享的对象池。十个 Worktree 共享一份几十 GB 的历史数据,不会多占一寸磁盘。

打个比方就是 影分身术(看过火影吧?)。

主仓库是本体,藏着全部查克拉(Git 对象历史)。平时本体在 feature-A 分支上搞大规模重构,工作区里散落着一百多个文件的中间修改。

突然来紧急 Bug。本体不需要停下来,不需要 git stash 把烂摊子压栈。它只需要结一个印。指尖在键盘上敲下去那一刻,你能感觉到按键弹簧微弱的回弹。

git worktree add ../project-hotfix -b hotfix/issue-911 origin/main

零点几秒。一个影分身凭空出现。

这个分身有自己的身体(物理目录)、自己的大脑(独立的 HEAD 和暂存区),跟本体的现场完全隔离。但它通过那条隐形的脐带,共享着本体庞大的查克拉储备。

分身开始干活。修 Bug、跑测试、提交、推送。然后用 gh pr create 召唤飞鸟把 PR 送到云端。

干完了。git worktree remove ../project-hotfix --force,影分身化为烟雾消失。

回过头来看本体。feature-A 的重构现场纹丝未动,连文件时间戳都没变。一切就像没发生过。

这就是 Worktree 的魔力。将「分支上下文」物理化为可管理的独立目录。AI Agent 不需要理解「暂存区」这种人类才需要的心智模型。它只需要知道: 每个任务对应一个目录,干完就删。

跟传统的 git clone 比,优势是碾压级的:

  • • 磁盘 IO:十个 Worktree 共享一份对象库,而十个全量 clone 占用十倍空间。
  • • 冷启动速度:毫秒级创建,不需要重新下载历史。
  • • 缓存共享:node_modules 这些依赖可以通过软链接在 Worktree 间共享,AI 不用每次 npm install
  • • 上下文纯净度:每个 Worktree 的工作区是静态挂载的,LSP 索引不会因为分支切换而失效,彻底消除「索引风暴」(Index Storm)。这对于 AI 的代码理解来说太重要了。LLM 最怕的就是「幽灵文件」污染上下文。

如果你的仓库大到几个 GB 的规模,还有一个进阶技巧: Worktree 配合 Sparse-Checkout(稀疏检出)。Agent 在挂载 Worktree 后,立即执行 git sparse-checkout set path/to/my-service,Git 就只在工作树中呈现当前 Issue 涉及的子目录。全量文件扫描的 IO 开销被显著降低。

04. 金三角:Worktree + CLI + jj 的合体技

工具不怕多,怕的是不会组合。

我管这套组合叫「金三角」。当然,这是我自己的叫法,没有官方认证。但它好用。

第一条边:Git Worktree。 负责并发隔离。它是底座。所有 Agent 任务进来,先分配一个独立 Worktree。任务隔离、状态隔离、文件隔离。

第二条边:平台 CLI(gh/glab/tea)。 负责远程操控。代码改完了,Agent 一句 gh pr create --fill --label bug (你也让AI解释下这个命令的「大白话」,下次你就用「大白话」说,不用说这个命令)就把整个 Code Review 流程走完了。不需要理解 Git 远程协议的细节,不需要配置 SSH 密钥。Token 注入、API 封装、结果格式化,全被 CLI 挡在背后。拿 gh 举例,它还有一个隐藏大招。gh api 子命令提供了一条「原始 API 通道」,可以对 GitHub 的 REST 或 GraphQL 接口发起任意请求。所以 Agent 能做到 CLI 命令没封装的任何操作。

第三条边:jj(Jujutsu)。 负责兜底容错。这是我最近才开始认真试的东西,说实话还没完全搞透。但它的设计方向太对味了。

传统 Git 遇到合并冲突会怎么做?往文件里插一堆 <<<<<<< HEAD 的冲突标记,然后挂起进程等人类拿编辑器去解。对 AI Agent 来说,这就是死锁。

jj 怎么做的?它把「冲突」本身当成一个合法的状态,一个可以序列化、可以存储、甚至可以提交的数据结构。A + (C-B) + (E-D),这就是 jj 眼中的一个合并冲突。它不是一个「错误」,而是一个逻辑表达式。

那结果呢?AI Agent 「永远」不会因为冲突而崩溃(可能说得有点夸张,不要介意)。它可以把包含冲突的树结构提交到仓库里,然后在后面的步骤中,单独调用 LLM 去理解并化解这个冲突。而且 jj 有一条完整的操作日志(operation log),任何操作都可以撤销,就像给版本控制装了一个「后悔药」。容错性提高了不止一个量级。

这三个工具叠在一起的效果:Worktree 让 AI 能并行干活不打架,CLI 让 AI 能远程操控仓库,jj 让 AI 就算搞砸了也能安全恢复。

金三角几何图

05. 避坑指南:五个让 Agent 翻车的「死法」

说真的,避坑指南比工具本身重要十倍。

因为 AI Agent 一定会搞炸你的仓库。问题不是「如果」,而是「什么时候」。

我翻了又翻,总结出这五个我认为最要命的陷阱。

陷阱一:Worktree 物理目录被误删。

Agent 在调试时生成了一条 rm -rf ../project-hotfix。Worktree 的物理目录被删了,但主仓库 .git/worktrees/ 下的元数据还在。这个「僵尸记录」会导致以后同名的 Worktree 创建失败,而且 Git 内部状态会越来越脏。

防御:Agent 析构时强制走 git worktree remove --force。如果目录已经被误删,在主仓库执行 git worktree prune 清扫僵尸记录。如果运气更差,连未推送的提交也丢了。先用 git worktree repair <new-path> 尝试重新建立指针映射(如果你还记得目录搬到哪里去了),否则用 git fsck --lost-found 去对象池里大海捞针。说实话,这步能不能捞回来全看命。所以最保险的做法是在 Agent 执行删除前加一层存在性检查:只有 test -d <path> && test -f <path>/.git 时才允许 rm -rf,否则回退到 git worktree prune 逻辑。

陷阱二:交互式提示导致进程死锁。

这是 AI Agent 的头号杀手。Agent 执行 git pull,结果上游有冲突,Git 弹了个编辑器等着你写 Merge Message。Agent 不知道什么叫 Vim,它就在那傻等。一等就是几个小时,直到被系统的超时监控杀掉。

防御:环境变量大法。GIT_TERMINAL_PROMPT=0 禁用 Git 交互提示。GIT_MERGE_AUTOEDIT=no 不让 Git 打开编辑器。GH_PROMPT_DISABLED=1 禁用 GitHub CLI 的交互菜单。对于 SSH 首次连接,设置 GIT_SSH_COMMAND="ssh -o StrictHostKeyChecking=accept-new" 来跳过指纹确认。再加一个终极兜底:git config --global core.editor true,把默认编辑器设成一个直接返回成功的空命令。

陷阱三:API Rate Limit 限流风暴。

几十个 Agent 同时在 gh issue view 或者 gh pr list,很容易撞上 GitHub 的 API 限流。匿名用户一小时 60 次,认证用户 5000 次。一旦触发 403,所有 CLI 命令全部失败。如果 Agent 没有处理这个错误,它就会疯狂重试,形成「重试风暴」把限流撞得更死。

防御:在 CLI 上层封装重试逻辑,检测标准错误流中的 rate limit exceeded,读取响应头中的 x-ratelimit-reset 时间戳,然后指数退避(第一次等 1 秒,第二次 2 秒,第三次 4 秒……)。更高级的做法是搞一个 Token 池,多个 GH_TOKEN 轮换使用,但这要求你的基础设施支持动态密钥管理。对大多数团队来说,一个带重试退避的命令执行器守护进程就够用了。

陷阱四:Detached HEAD,灵魂出窍。

LLM 生成的脚本里混了一句 git checkout 87ec91d。一个历史提交的哈希值。Git 默默进入了「游离头指针」状态。Agent 在这个状态下辛苦改了一堆文件,然后执行 git checkout main 切回去。之前所有的修改,因为不在任何命名分支上,直接变成了孤儿节点,被 Git 的垃圾回收机制视为可回收对象。

这是最坑的。因为它没有任何错误提示。Agent 以为自己提交了,实际上提交已经被抛离。等发现代码丢了,可能已经是好几天之后。

防御:禁止使用 git checkout 切换分支或历史。强制使用语义明确的 git switch。如果确实需要定位到某个历史提交做实验,必须带 -c 参数创建临时分支:git switch -c temp-experiment 87ec91d。如果已经翻车了,立刻跑 git reflog 找到丢失的哈希值,然后用 git branch recover-branch <lost-hash> 复活。

陷阱五:Token 泄露与凭证裸奔。

这不算技术故障,但实际中踩的人是最多的。Agent 在脚本里硬编码了 GITHUB_TOKEN=ghp_xxxx,或者在日志里不小心输出了完整的 Token 字符串。一旦日志泄露,你的整个代码库就裸奔了。更常见的场景是。Agent 配置了一个永不过期的 Token 跑在 CI 里,三个月后依然有效,中间被谁拿走了你根本不知道。

防御:三个原则。 最小权限:Token 只给 Agent 完成任务所需的最低权限。 短有效期:能设 24 小时就别设 30 天。 白名单:Token 绑定 IP 或网络段。另外日志输出前必须过滤掉 [Tt]oken[Ss]ecret[Pp]assword 等关键词。一旦怀疑泄露,立刻去平台 Settings 里 revoke 并轮换。

06. Opencode 里的真打实战

前面说了这么多理论。来点具体的。

在类似 Opencode 这样的 AI 编码平台上,Agent 不是单打独斗的。它是成百上千个微型 Agent 蜂群式协作。这时候工具链的价值才真正体现出来。

场景一:多 Issue 并发修复。

系统突然涌入十几个 Issue。调度器给每个 Issue 分配一个 Agent,每个 Agent 拿到一个独立的 Worktree。它们在同一个底层仓库上并行工作,但物理目录完全不交叉。

等修完了,每个 Agent 在自己的 Worktree 里跑测试。测试产生的临时文件被天然锁定在各自目录里,不会互相覆盖,不会产生「幽灵报错」。测试通过后,gh pr create 一键提 PR。

调度器还需要处理 Worktree 的 生命周期管理。最佳实践是引入「租约 TTL」机制。每个 Worktree 在创建时记录时间戳,一旦超过预设有效期(比如 24 小时)且关联的 Issue 已经关闭或 PR 已合并,系统自动执行 git worktree remove 和本地分支删除。最后定期跑 git worktree prune,清扫那些因为意外崩溃而遗留的僵尸记录。

场景二:跨仓库联动。

一个需求要同时改前端(Repo A)和后端(Repo B)。Agent 需要在两个仓库之间保持逻辑关联。

做法是:在调度层维护一个「跨仓上下文对象」,记录了当前 Issue 对应的工作区映射关系。Agent 分别在 Repo A 的 Worktree 和 Repo B 的 Worktree 里改代码,然后分别推送,通过 PR body 里的 Closes #123 魔术词把两个 PR 关联到同一个 Issue。

需求回滚了?行,通过这个上下文对象一次性清扫所有相关 Worktree。

场景三:代码审查迭代。

PR 提交后,人类架构师提了 Review 意见。Agent 通过 gh pr view --json comments 抓取评审意见。注意 --json 这个参数,它让输出变成结构化的机器可读格式,比解析人类自然语言稳定得多。Agent 解析出对应的文件路径和行号后,根据 PR 映射定位到之前那个 Worktree。如果还没被清理的话,直接 cd 进去改代码。

改完用 git commit --amend --no-edit 折叠历史,然后用 git push --force-with-lease 安全推送(注意是 --force-with-lease 不是 --force,前者带租约保护,不会覆盖别人推上来的提交)。整个过程局限在同一个物理目录里,状态一致性有保障。

这种「PR → Worktree」的映射,让 Agent 在多轮迭代中不会迷路。它永远知道自己在哪个目录、在修哪个分支。

07. 工具是死的,组合才是活的

说了这么多,其实就想表达一件事。

单个工具再强,都有天花板。Git Worktree 不能帮你提 PR,gh 不能帮你解决冲突,jj 目前还太新,企业级落地有风险。但把它们组合起来,Worktree 管并发、CLI 管远程、jj 管容错。这个组合拳打出来,效果确实不错。

说实话这个「金三角」不是标准答案。AI 工具链还在疯狂进化。说不定明年就有更好的方案出来。我有时候半夜醒来会想这些事,盯着天花板发呆。

但有一个原则不会变:给 AI Agent 配的工具,必须比给人配的工具更健壮、更防呆、更自动化。 因为 AI 不会像人一样「发现问题了先停一停想一下」。它会毫不犹豫地执行你给它的每一条指令。

包括那些会炸掉仓库的指令。

这才是版本管理工具链在 AI 时代真正的核心命题。

不是「用什么工具」。而是「怎么让工具组合起来,在你睡着的时候替你守住底线」。

这篇写了大几千字了。手指在键盘上搁久了,掌心那块已经有点发粘。说实话我也不知道这些判断对不对。但我觉得,对这些底层工具保持好奇就对了。

行吧,说完了。

读者互动:你被 AI Agent 搞炸过仓库吗?用的什么工具组合?来评论区聊聊,我看看谁翻的车比我还惨 😂

极客精益社区

局限性说明:文中「金三角」概念是我个人的工程实践总结,非官方术语,在不同规模的团队中效果可能差异很大。jj(Jujutsu)部分我自己的生产环境使用经验还不够深,主要基于阅读源码和实验环境的手感,建议读者在决定引入生产前做更充分的评估。避坑指南中的修复命令在我测试环境中验证过,但不保证覆盖所有异常场景。毕竟 AI Agent 搞炸仓库的方式,可能比我能想到的更多。

延伸阅读

  • • Git Worktree 官方文档[1] - 官方文档,但不枯燥。看完你就知道为什么我说它是 AI 时代最重要的 Git 特性
  • • Git Worktree for Multi-Agent Dev[2] - 老外写的实操指南,Worktree 在多 Agent 场景下的配置方法,很实用
  • • GitHub CLI 官方手册[3] - gh 的全部命令都在这里,重点看 gh pr create 和 gh api 的用法
  • • Jujutsu VCS - GitHub[4] - 星星涨得飞快的下一代 VCS,Git 兼容,冲突处理思路很新颖,值得盯着
  • • GitLab CLI 文档[5] - 如果你团队用 GitLab,glab 就是你的远程遥控器

相关标签#AI Agent #Git Worktree #版本管理 #Jujutsu #GitHub CLI #GitLab CLI #Gitea #Opencode #DevTools #影分身术 #Monorepo

引用链接

[1] Git Worktree 官方文档: https://git-scm.com/docs/git-worktree[2] Git Worktree for Multi-Agent Dev: https://www.termdock.com/en/blog/git-worktree-multi-agent-setup[3] GitHub CLI 官方手册: https://cli.github.com/manual/[4] Jujutsu VCS - GitHub: https://github.com/jj-vcs/jj[5] GitLab CLI 文档: https://docs.gitlab.com/cli/

基本 文件 流程 错误 SQL 调试
  1. 请求信息 : 2026-07-10 08:14:06 HTTP/1.1 GET : https://www.yeyulingfeng.com/a/643216.html
  2. 运行时间 : 0.102332s [ 吞吐率:9.77req/s ] 内存消耗:4,763.65kb 文件加载:145
  3. 缓存信息 : 0 reads,0 writes
  4. 会话信息 : SESSION_ID=6f4b909390f3ae8028fc7f524dee7723
  1. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/public/index.php ( 0.79 KB )
  2. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/autoload.php ( 0.17 KB )
  3. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/composer/autoload_real.php ( 2.49 KB )
  4. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/composer/platform_check.php ( 0.90 KB )
  5. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/composer/ClassLoader.php ( 14.03 KB )
  6. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/composer/autoload_static.php ( 6.05 KB )
  7. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-helper/src/helper.php ( 8.34 KB )
  8. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-validate/src/helper.php ( 2.19 KB )
  9. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/ralouphie/getallheaders/src/getallheaders.php ( 1.60 KB )
  10. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/helper.php ( 1.47 KB )
  11. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/stubs/load_stubs.php ( 0.16 KB )
  12. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Exception.php ( 1.69 KB )
  13. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-container/src/Facade.php ( 2.71 KB )
  14. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/symfony/deprecation-contracts/function.php ( 0.99 KB )
  15. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/symfony/polyfill-mbstring/bootstrap.php ( 8.26 KB )
  16. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/symfony/polyfill-mbstring/bootstrap80.php ( 9.78 KB )
  17. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/symfony/var-dumper/Resources/functions/dump.php ( 1.49 KB )
  18. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-dumper/src/helper.php ( 0.18 KB )
  19. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/symfony/var-dumper/VarDumper.php ( 4.30 KB )
  20. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/guzzlehttp/guzzle/src/functions_include.php ( 0.16 KB )
  21. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/guzzlehttp/guzzle/src/functions.php ( 5.54 KB )
  22. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/App.php ( 15.30 KB )
  23. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-container/src/Container.php ( 15.76 KB )
  24. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/psr/container/src/ContainerInterface.php ( 1.02 KB )
  25. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/app/provider.php ( 0.19 KB )
  26. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Http.php ( 6.04 KB )
  27. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-helper/src/helper/Str.php ( 7.29 KB )
  28. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Env.php ( 4.68 KB )
  29. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/app/common.php ( 0.03 KB )
  30. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/helper.php ( 18.78 KB )
  31. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Config.php ( 5.54 KB )
  32. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/alipay.php ( 3.59 KB )
  33. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/facade/Env.php ( 1.67 KB )
  34. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/app.php ( 0.95 KB )
  35. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/cache.php ( 0.78 KB )
  36. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/console.php ( 0.23 KB )
  37. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/cookie.php ( 0.56 KB )
  38. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/database.php ( 2.48 KB )
  39. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/filesystem.php ( 0.61 KB )
  40. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/lang.php ( 0.91 KB )
  41. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/log.php ( 1.35 KB )
  42. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/middleware.php ( 0.19 KB )
  43. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/route.php ( 1.89 KB )
  44. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/session.php ( 0.57 KB )
  45. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/trace.php ( 0.34 KB )
  46. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/view.php ( 0.82 KB )
  47. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/app/event.php ( 0.25 KB )
  48. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Event.php ( 7.67 KB )
  49. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/app/service.php ( 0.13 KB )
  50. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/app/AppService.php ( 0.26 KB )
  51. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Service.php ( 1.64 KB )
  52. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Lang.php ( 7.35 KB )
  53. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/lang/zh-cn.php ( 13.70 KB )
  54. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/initializer/Error.php ( 3.31 KB )
  55. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/initializer/RegisterService.php ( 1.33 KB )
  56. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/services.php ( 0.14 KB )
  57. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/service/PaginatorService.php ( 1.52 KB )
  58. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/service/ValidateService.php ( 0.99 KB )
  59. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/service/ModelService.php ( 2.04 KB )
  60. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-trace/src/Service.php ( 0.77 KB )
  61. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Middleware.php ( 6.72 KB )
  62. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/initializer/BootService.php ( 0.77 KB )
  63. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/Paginator.php ( 11.86 KB )
  64. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-validate/src/Validate.php ( 63.20 KB )
  65. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/Model.php ( 23.55 KB )
  66. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/model/concern/Attribute.php ( 21.05 KB )
  67. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/model/concern/AutoWriteData.php ( 4.21 KB )
  68. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/model/concern/Conversion.php ( 6.44 KB )
  69. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/model/concern/DbConnect.php ( 5.16 KB )
  70. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/model/concern/ModelEvent.php ( 2.33 KB )
  71. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/model/concern/RelationShip.php ( 28.29 KB )
  72. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-helper/src/contract/Arrayable.php ( 0.09 KB )
  73. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-helper/src/contract/Jsonable.php ( 0.13 KB )
  74. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/model/contract/Modelable.php ( 0.09 KB )
  75. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Db.php ( 2.88 KB )
  76. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/DbManager.php ( 8.52 KB )
  77. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Log.php ( 6.28 KB )
  78. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Manager.php ( 3.92 KB )
  79. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/psr/log/src/LoggerTrait.php ( 2.69 KB )
  80. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/psr/log/src/LoggerInterface.php ( 2.71 KB )
  81. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Cache.php ( 4.92 KB )
  82. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/psr/simple-cache/src/CacheInterface.php ( 4.71 KB )
  83. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-helper/src/helper/Arr.php ( 16.63 KB )
  84. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/cache/driver/File.php ( 7.84 KB )
  85. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/cache/Driver.php ( 9.03 KB )
  86. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/contract/CacheHandlerInterface.php ( 1.99 KB )
  87. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/app/Request.php ( 0.09 KB )
  88. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Request.php ( 55.78 KB )
  89. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/app/middleware.php ( 0.25 KB )
  90. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Pipeline.php ( 2.61 KB )
  91. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-trace/src/TraceDebug.php ( 3.40 KB )
  92. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/middleware/SessionInit.php ( 1.94 KB )
  93. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Session.php ( 1.80 KB )
  94. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/session/driver/File.php ( 6.27 KB )
  95. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/contract/SessionHandlerInterface.php ( 0.87 KB )
  96. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/session/Store.php ( 7.12 KB )
  97. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Route.php ( 23.73 KB )
  98. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/route/RuleName.php ( 5.75 KB )
  99. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/route/Domain.php ( 2.53 KB )
  100. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/route/RuleGroup.php ( 22.43 KB )
  101. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/route/Rule.php ( 26.95 KB )
  102. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/route/RuleItem.php ( 9.78 KB )
  103. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/route/app.php ( 3.94 KB )
  104. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/facade/Route.php ( 4.70 KB )
  105. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/route/dispatch/Controller.php ( 4.74 KB )
  106. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/route/Dispatch.php ( 10.44 KB )
  107. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/app/controller/Index.php ( 9.87 KB )
  108. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/app/BaseController.php ( 2.05 KB )
  109. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/facade/Db.php ( 0.93 KB )
  110. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/connector/Mysql.php ( 5.44 KB )
  111. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/PDOConnection.php ( 52.47 KB )
  112. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/Connection.php ( 8.39 KB )
  113. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/ConnectionInterface.php ( 4.57 KB )
  114. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/builder/Mysql.php ( 16.58 KB )
  115. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/Builder.php ( 24.06 KB )
  116. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/BaseBuilder.php ( 27.50 KB )
  117. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/Query.php ( 15.71 KB )
  118. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/BaseQuery.php ( 45.13 KB )
  119. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/concern/TimeFieldQuery.php ( 7.43 KB )
  120. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/concern/AggregateQuery.php ( 3.26 KB )
  121. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/concern/ModelRelationQuery.php ( 20.07 KB )
  122. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/concern/ParamsBind.php ( 3.66 KB )
  123. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/concern/ResultOperation.php ( 7.01 KB )
  124. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/concern/WhereQuery.php ( 19.37 KB )
  125. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/concern/JoinAndViewQuery.php ( 7.11 KB )
  126. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/concern/TableFieldInfo.php ( 2.63 KB )
  127. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/concern/Transaction.php ( 2.77 KB )
  128. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/log/driver/File.php ( 5.96 KB )
  129. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/contract/LogHandlerInterface.php ( 0.86 KB )
  130. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/log/Channel.php ( 3.89 KB )
  131. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/event/LogRecord.php ( 1.02 KB )
  132. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-helper/src/Collection.php ( 16.47 KB )
  133. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/facade/View.php ( 1.70 KB )
  134. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/View.php ( 4.39 KB )
  135. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/app/controller/Es.php ( 3.30 KB )
  136. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Response.php ( 8.81 KB )
  137. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/response/View.php ( 3.29 KB )
  138. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Cookie.php ( 6.06 KB )
  139. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-view/src/Think.php ( 8.38 KB )
  140. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/contract/TemplateHandlerInterface.php ( 1.60 KB )
  141. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-template/src/Template.php ( 46.61 KB )
  142. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-template/src/template/driver/File.php ( 2.41 KB )
  143. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-template/src/template/contract/DriverInterface.php ( 0.86 KB )
  144. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/runtime/temp/c935550e3e8a3a4c27dd94e439343fdf.php ( 31.50 KB )
  145. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-trace/src/Html.php ( 4.42 KB )
  1. CONNECT:[ UseTime:0.000555s ] mysql:host=127.0.0.1;port=3306;dbname=wenku;charset=utf8mb4
  2. SHOW FULL COLUMNS FROM `fenlei` [ RunTime:0.001071s ]
  3. SELECT * FROM `fenlei` WHERE `fid` = 0 [ RunTime:0.000363s ]
  4. SELECT * FROM `fenlei` WHERE `fid` = 63 [ RunTime:0.000278s ]
  5. SHOW FULL COLUMNS FROM `set` [ RunTime:0.000639s ]
  6. SELECT * FROM `set` [ RunTime:0.000242s ]
  7. SHOW FULL COLUMNS FROM `article` [ RunTime:0.000725s ]
  8. SELECT * FROM `article` WHERE `id` = 643216 LIMIT 1 [ RunTime:0.000568s ]
  9. UPDATE `article` SET `lasttime` = 1783642447 WHERE `id` = 643216 [ RunTime:0.008696s ]
  10. SELECT * FROM `fenlei` WHERE `id` = 64 LIMIT 1 [ RunTime:0.000293s ]
  11. SELECT * FROM `article` WHERE `id` < 643216 ORDER BY `id` DESC LIMIT 1 [ RunTime:0.000603s ]
  12. SELECT * FROM `article` WHERE `id` > 643216 ORDER BY `id` ASC LIMIT 1 [ RunTime:0.007331s ]
  13. SELECT * FROM `article` WHERE `id` < 643216 ORDER BY `id` DESC LIMIT 10 [ RunTime:0.000687s ]
  14. SELECT * FROM `article` WHERE `id` < 643216 ORDER BY `id` DESC LIMIT 10,10 [ RunTime:0.001496s ]
  15. SELECT * FROM `article` WHERE `id` < 643216 ORDER BY `id` DESC LIMIT 20,10 [ RunTime:0.001576s ]
0.105032s