乐于分享
好东西不私藏

AI 改页面翻车后,才发现 Git 分支根本不够用

AI 改页面翻车后,才发现 Git 分支根本不够用

AI 改页面翻车后,才发现 Git 分支根本不够用

最近在做一个项目的新页面改版时,我踩了一个很典型的坑。

原本需求非常简单:现有页面已经能正常使用,主分支也要继续保持稳定。在新版页面没有完全改完之前,我并不想动主分支上的旧页面。因为页面改版不像修一个小 bug,它往往会涉及整体视觉风格、布局结构、图片资源、组件拆分、响应式适配,甚至还可能反复推翻重来。

所以一开始,我的想法也很自然:既然不想影响主分支,那就创建一个新分支,让 AI 在新分支里改版。等新版页面全部完成、测试通过、视觉效果确认后,再统一合并回主分支。

听起来这套流程很正常,也很符合 Git 的基本使用方式。

但真正开始用 AI 做页面改版以后,我才发现,问题并没有想象中那么简单。

一开始只是想用分支隔离页面改版

当时我的操作思路很直接。

主分支继续保留现有页面,改版工作放到一个新的分支里。比如从main拉出一个ui-redesign分支,然后让 AI 在这个分支里重做首页、调整配色、优化卡片、替换背景图、重新设计交互细节。

这种方式在传统开发里是很常见的。一个新需求开一个 feature 分支,一个 bug 修复开一个 fix 分支,一个页面改版开一个 redesign 分支,看起来没有任何问题。

但问题出在:这次不是我手动慢慢改,而是让 AI 参与改版。

AI 改页面和人手动改页面最大的区别是,它的改动速度非常快,而且改动范围有时候会比你预期大得多。你只是让它“重新设计首页”,它可能不仅会改page.tsx,还会改组件、样式文件、布局结构,甚至会替换public目录里的背景图、Logo、卡片图、角色图和装饰图。

一开始我并没有特别在意这个问题。直到后来我发现,public里的图片资源被替换了。

这时候才意识到,单纯创建一个分支,并不能完全解决 AI 改版时的工作区污染问题。

真正的问题不是分支,而是工作区

很多人理解 Git 分支时,会默认认为:只要创建了新分支,就不会影响主分支。

这个理解只对了一半。

分支确实可以隔离提交历史,但如果你仍然在同一个项目目录里工作,那么你的物理工作区其实还是同一个。你只是在同一个文件夹里不断切换不同分支对应的文件状态。

比如你的项目目录是:

~/projects/glownest-next

你在这个目录里从main切到ui-redesign,然后让 AI 去改页面。这个过程中,所有文件仍然在同一个物理目录里被修改,包括srcappcomponentsstyles,也包括最容易被忽略的public

如果 AI 把新版首页的背景图直接写到了:

public/images/home-bg.png

而旧版首页原本也在使用这个文件,那就很容易出现资源覆盖问题。

理论上,如果这个文件被 Git 跟踪,并且你已经提交,分支切换时 Git 能恢复不同分支对应的文件版本。但真实项目里,经常会有更复杂的情况:有些图片是未跟踪文件,有些资源是 AI 新增的,有些文件被覆盖后还没提交,有些路径被多个页面共用,还有开发服务器和浏览器缓存参与进来。

最后你会发现,明明是在新分支里做页面改版,但旧页面看起来也像被影响了。不是 Git 分支失效了,而是你把所有试验都放在了同一个工作区里。

这就是这次踩坑的核心。

分支隔离的是版本历史,worktree 隔离的是开发现场。

public 目录为什么特别容易被 AI 改乱?

在前端项目里,public目录是一个非常特殊的地方。

很多静态资源都会放在这里,比如 Logo、背景图、图标、字体、插画、角色头像、卡片封面、JSON 配置等。页面引用这些资源时,路径通常非常直接:

<img src="/images/home-bg.png"/>

或者:

background-image:url('/images/hero-bg.png');

这类引用方式很方便,但也带来一个问题:如果 AI 在改版时直接覆盖了同名文件,旧页面和新版页面都可能受到影响。

尤其是 AI 很容易采用“就地优化”的方式。你让它把首页改得更高级,它可能会直接替换原来的hero-bg.png;你让它重新设计卡片,它可能会直接覆盖原来的card-bg.png;你让它换一套品牌视觉,它可能会直接替换 Logo 或背景图。

对 AI 来说,这样做是为了完成改版目标。但对真实项目来说,这种方式非常危险。因为旧页面还没下线,主分支还要保持稳定,新版页面还在试验阶段,资源不应该直接覆盖。

页面代码的变更,你通常能通过 diff 看出来。但图片资源的替换,很多时候要等页面跑起来以后才会发现。尤其当图片文件名没变,只是内容变了,肉眼 review diff 时很容易忽略。

所以 AI 做页面改版时,public目录一定要特别小心。

为什么页面改版比普通功能开发更适合 worktree?

普通业务开发里,一个分支通常已经够用了。比如新增一个接口、修一个 bug、补一个字段,改动范围相对清楚,最终也比较容易 review。

但页面改版不一样。

页面改版通常是一种试验型工作。你可能会换色系,换布局,换图片,换动效,换首页结构,甚至换整套视觉语言。这个过程里,很多改动一开始并不确定。你可能让 AI 做出一个版本,觉得不满意,又让它换一个方向。反复几轮以后,项目里很容易出现大量临时组件、临时图片、废弃样式和中间版本资源。

如果这些试验都发生在主项目目录里,即使你使用的是新分支,也会带来很强的心理负担。你会担心 AI 是否动到了旧页面资源,是否替换了公共图片,是否影响了当前可用的版本,是否留下了一堆临时文件。

而 worktree 的好处就在这里。

它可以让同一个 Git 仓库在本地同时拥有多个独立工作目录。主分支仍然放在原来的目录里,新版页面改版放在另一个目录里。两个目录各自有自己的publicsrcappcomponents、开发服务器和缓存环境。

这样一来,AI 就可以在改版目录里大胆试验,而主分支目录完全不受影响。

这才是真正意义上的“开发现场隔离”。

worktree 的正确使用方式

假设你的主项目目录是:

~/projects/glownest-next

当前主分支是main。在开始改版之前,第一步一定是先确认主分支工作区是干净的:

git status

如果有未提交内容,先提交或者 stash。不要在工作区混乱的情况下继续开改版任务,否则后面很难判断哪些改动属于旧任务,哪些改动属于新版页面。

接着拉取最新主分支:

git checkout main

git pull origin main

然后使用 worktree 创建一个独立的改版目录:

git worktree add ../glownest-next-ui-redesign -b ui-redesign main

这条命令的意思是:基于main创建一个新分支ui-redesign,并把这个分支 checkout 到一个新的本地目录:

../glownest-next-ui-redesign

此时你本地会同时存在两个目录。

一个是主分支目录:

~/projects/glownest-next

另一个是改版分支目录:

~/projects/glownest-next-ui-redesign

接下来进入改版目录:

cd../glownest-next-ui-redesign

安装依赖并启动项目:

pnpm install

pnpm dev ----port 3001

如果主分支项目仍然运行在3000端口,那么你就可以同时打开两个页面:

http://localhost:3000

查看旧版页面。

http://localhost:3001

查看新版页面。

这时候你就不需要来回切分支,也不需要反复重启项目。旧版和新版可以同时打开、同时对比,非常适合页面改版。

给 AI 的指令必须明确资源边界

使用 worktree 以后,风险已经小很多,但这并不意味着可以完全放开让 AI 随便改。

AI 页面改版仍然需要明确边界。尤其是静态资源,必须提前告诉 AI 不要覆盖旧资源。

我现在更推荐在改版 worktree 里给 AI 这样的指令:

当前目录是页面改版专用 worktree,不是主分支目录。

本次任务是重新设计首页视觉效果,保留现有业务逻辑和路由结构。

允许修改:

1. 首页相关页面组件

2. 首页相关样式文件

3. 新增改版专用组件

4. 新增改版专用静态资源

禁止修改:

1. 不要修改接口调用逻辑

2. 不要修改登录、鉴权、支付、订单等业务模块

3. 不要覆盖 public 目录下已有同名图片

4. 不要删除旧页面资源

5. 不要修改主分支目录中的任何文件

资源规则:

所有新增图片、背景图、图标、装饰图,统一放到 public/redesign/ 目录下,并使用新的文件名。

不要覆盖 public/images/、public/assets/、public/logo.png 等旧资源。

完成后请输出:

1. 修改了哪些文件

2. 新增了哪些静态资源

3. 是否覆盖了已有资源

4. 是否保留旧页面可回退

5. 如何合并回主分支

这段提示词的核心不是让 AI 做得更快,而是让 AI 改得更可控。

AI 很擅长执行,但它不知道你的工程风险偏好。你必须告诉它哪些地方可以试验,哪些地方不能碰,哪些资源必须隔离,哪些逻辑必须保留。

这就像给 AI 划出一个施工区域。

worktree 是物理隔离,提示词是行为边界。

两者都需要。

新资源一定要有独立命名空间

这次踩坑以后,我对页面改版里的静态资源有一个非常明确的建议:所有新资源都应该放到独立目录里。

比如:

public/redesign/

更进一步,可以按页面拆分:

public/redesign/home/

public/redesign/cards/

public/redesign/icons/

public/redesign/backgrounds/

这样做有几个明显好处。

第一,新旧资源不会混在一起。你一眼就能看出哪些资源是为新版页面准备的。

第二,不会覆盖旧页面资源。旧页面原来引用的public/images/home-bg.png不会被新版资源替换。

第三,review 更清楚。PR 里新增了哪些改版资源,一眼就能看出来。

第四,如果改版方向被推翻,可以直接删除整个public/redesign目录,清理成本非常低。

第五,合并回主分支时,可以更从容地决定哪些资源保留,哪些资源丢弃。

很多项目后期资源混乱,就是因为一开始没有命名空间。新版、旧版、临时图、生成图、测试图全部放在同一个目录里,最后没人知道哪个文件还在用,哪个文件可以删。

AI 改版时更要避免这个问题。

因为 AI 生成资源太快了,如果没有规则,很容易把public变成垃圾场。

新页面也不要一开始就覆盖旧页面

除了静态资源,页面入口也建议先隔离。

比如原来的首页是:

app/page.tsx

如果新版还没有完全确认,就不要一开始直接覆盖它。更稳的方式是先新建一个临时页面:

app/redesign/page.tsx

这样新版可以通过/redesign单独访问。旧首页继续保留,新首页独立预览,两个版本可以同时存在。

如果项目不是 Next.js,而是 React Router 或 Vue Router,也可以先加一个临时路由:

/redesign-home

这个做法非常适合页面改版。

因为页面设计往往不是一次到位。第一版可能色系不对,第二版可能布局不对,第三版可能移动端不行。你需要不断试验和对比。如果一开始就覆盖旧页面,每一次试错都会影响现有可用版本。

先让新版页面独立存在,等视觉、功能、适配都确认后,再替换正式入口。

这才是更稳的前端改版方式。

worktree 让新旧页面对比变得非常自然

页面改版最重要的工作之一,就是对比。

你不能只看新版是不是“更好看”。你还要确认新版有没有丢失旧版功能,有没有遗漏入口,有没有破坏移动端,有没有改变用户熟悉的路径,有没有影响首屏加载,有没有把原来的核心信息弱化掉。

如果只靠一个目录来回切分支,对比体验非常差。你要切分支、重启项目、刷新页面,然后凭记忆比较两个版本。这对视觉判断很不友好。

worktree 则完全不一样。

你可以让主分支运行在3000端口,让改版分支运行在3001端口。两个页面并排打开,左边旧版,右边新版。你可以直接对比首屏、卡片、按钮、图片、字体、移动端布局。

这种对比方式非常适合和 AI 协作。

你可以看完新版后,继续给 AI 反馈:

“新版首屏情绪更强,但旧版的功能入口更清晰,需要把旧版的核心入口保留下来。”

“新版图片风格更统一,但卡片信息密度太低,需要提高一点内容承载能力。”

“新版按钮更好看,但 CTA 不够突出,主按钮和次按钮层级还需要再拉开。”

这种反馈,比单纯说“再优化一下”有效得多。

因为你是在真实对比中给出具体反馈。

改版完成后,不要手动复制文件合并

很多人页面改版完成后,会下意识地手动复制文件回主项目目录。

这不是一个好习惯。

更推荐走标准 Git 流程。

在改版 worktree 里先检查改动:

git status

gitdiff

确认没有误删旧资源、没有覆盖不该覆盖的图片、没有修改业务逻辑以后,提交改版分支:

git add .

git commit -m "feat: redesign home page"

然后推送到远程:

git push origin ui-redesign

接下来通过 PR 或 MR 合并到主分支。

合并前重点 review 几类内容:第一,public目录有没有覆盖旧资源;第二,是否误改接口调用、登录鉴权、订单支付等业务逻辑;第三,是否新增了无用图片或临时文件;第四,移动端适配是否完整;第五,构建和类型检查是否通过。

页面改版不是只看视觉效果。

最终能不能合并,还是要看工程质量。

所以合并前至少应该跑:

pnpm build

如果项目有类型检查,也要跑:

pnpm typecheck

如果项目有 lint,也要跑:

pnpm lint

确认通过后,再考虑合并。

改版结束后如何清理 worktree

当新版页面已经合并,或者这个改版方案决定废弃,就可以清理 worktree。

先回到主项目目录:

cd~/projects/glownest-next

查看当前 worktree:

git worktree list

如果确认改版目录不再需要,可以删除:

git worktree remove ../glownest-next-ui-redesign

如果本地分支也不需要了,可以删除:

git branch -d ui-redesign

如果远程分支也要删除:

git push origin --delete ui-redesign

worktree 的好处是,整个改版实验环境可以干净移除。不会在主项目目录里留下大量临时资源,也不会让你事后分不清哪些文件属于改版试验,哪些文件属于主分支。

这对 AI 改版尤其重要。

因为 AI 很容易生成中间文件和临时资源。如果没有隔离目录,后期清理会非常痛苦。

这次踩坑真正的教训

这次页面改版最大的教训,不是“不要用分支”。

分支当然要用。

真正的教训是:当 AI 参与页面改版时,仅仅使用分支还不够。因为 AI 的改动不只是代码提交,它会影响整个开发现场,包括静态资源、页面入口、未跟踪文件、开发服务器、缓存和临时资源。

分支解决的是版本管理问题。

worktree 解决的是工作区隔离问题。

页面改版这种任务,天然需要大量试验、反复对比和资源替换,因此更适合 worktree。主分支目录继续保持稳定,改版分支目录用来大胆试错。AI 的所有试验都发生在改版目录里,旧页面不会被打扰,public 资源不会互相覆盖,新旧版本也可以同时运行对比。

这才是更适合 AI 改版页面的工作方式。

最后

AI 让页面改版变快了,但也让改版风险变大了。

以前人手动改页面,可能一天只改几个文件;现在 AI 一次就可能改几十个文件,还会顺手替换图片、重写组件、调整样式、改文案、加动效。效率是提高了,但如果没有工程隔离,项目很容易被改乱。

所以,AI 改页面时,不要只关注提示词怎么写,也不要只关注页面最终好不好看。更重要的是,先给 AI 一个安全的改版环境。

主分支保持稳定。

改版分支使用 worktree。

新资源放到独立目录。

新页面先用临时路由预览。

新旧版本同时启动对比。

改版完成后通过 PR review 合并。

这套流程看起来比直接切分支麻烦一点,但它能避免很多后期问题。尤其当 AI 开始参与真实项目改版时,worktree 几乎会变成一个非常重要的安全边界。

如果你也准备让 AI 重新设计项目页面,不建议一上来就在主目录里切个分支就开干。

更稳的方式是:

先开 worktree,再让 AI 改版。

这样旧页面继续稳定,新页面大胆试验,最后再把真正满意的结果合并回主分支。

这才是 AI 时代更适合前端页面改版的工程流程。

今天就讲到这里,如果有问题需要咨询,大家可以直接留言或扫下方二维码来知识星球找我,我们会尽力为你解答。

快速搭建属于您的专属官网,就上TechWisdom(www.techwisdom.cn)

提供100+ 精美模板,支持二级域名和独立域名配置,可根据需求进行个性化定制开发。首次上线还有专业团队协助上传内容,轻松打造高效、专业、吸睛的官网!立即访问网站,选择您心仪的模板,开启建站新体验吧!

作者:路条编程(转载请获本公众号授权,并注明作者与出处)

基本 文件 流程 错误 SQL 调试
  1. 请求信息 : 2026-06-13 15:31:32 HTTP/1.1 GET : https://www.yeyulingfeng.com/a/748186.html
  2. 运行时间 : 0.207306s [ 吞吐率:4.82req/s ] 内存消耗:4,778.10kb 文件加载:145
  3. 缓存信息 : 0 reads,0 writes
  4. 会话信息 : SESSION_ID=355812ca6f46a078fe44c92ff25d3712
  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.000805s ] mysql:host=127.0.0.1;port=3306;dbname=wenku;charset=utf8mb4
  2. SHOW FULL COLUMNS FROM `fenlei` [ RunTime:0.000900s ]
  3. SELECT * FROM `fenlei` WHERE `fid` = 0 [ RunTime:0.010799s ]
  4. SELECT * FROM `fenlei` WHERE `fid` = 63 [ RunTime:0.005104s ]
  5. SHOW FULL COLUMNS FROM `set` [ RunTime:0.001730s ]
  6. SELECT * FROM `set` [ RunTime:0.001023s ]
  7. SHOW FULL COLUMNS FROM `article` [ RunTime:0.001556s ]
  8. SELECT * FROM `article` WHERE `id` = 748186 LIMIT 1 [ RunTime:0.002199s ]
  9. UPDATE `article` SET `lasttime` = 1781335892 WHERE `id` = 748186 [ RunTime:0.008444s ]
  10. SELECT * FROM `fenlei` WHERE `id` = 64 LIMIT 1 [ RunTime:0.000871s ]
  11. SELECT * FROM `article` WHERE `id` < 748186 ORDER BY `id` DESC LIMIT 1 [ RunTime:0.001765s ]
  12. SELECT * FROM `article` WHERE `id` > 748186 ORDER BY `id` ASC LIMIT 1 [ RunTime:0.002339s ]
  13. SELECT * FROM `article` WHERE `id` < 748186 ORDER BY `id` DESC LIMIT 10 [ RunTime:0.000844s ]
  14. SELECT * FROM `article` WHERE `id` < 748186 ORDER BY `id` DESC LIMIT 10,10 [ RunTime:0.000970s ]
  15. SELECT * FROM `article` WHERE `id` < 748186 ORDER BY `id` DESC LIMIT 20,10 [ RunTime:0.002685s ]
0.211491s