当前状态:控制面板已经能够启动,GitHub 同步已恢复。以下是迁移过程的复盘,不是一键通用修复教程。
一件比想象中麻烦的事
我的个人博客仍然保留着源码与配置,但运行控制面板的旧电脑出了问题。换了新电脑并重新下载 XHBlogs 的 my-blog-manager 之后,后台最开始无法正常打开:双击启动脚本,命令行窗口一闪而过。
我怀疑是 Python 版本造成的——旧电脑曾在安装 Python 3.10 后正常运行,而新电脑使用 Python 3.13。我不想为了一个项目拆掉现有开发环境,于是选择从启动脚本的兼容性入手。
第一层:启动脚本
阅读 Start.bat 后发现,它优先查找 Python 3.10,并使用不够可靠的批处理版本解析逻辑。更严重的是,启动错误没有被好好保留,用户甚至来不及读到报错。
思路就变成:用实际解释器判断版本、保留错误输出、先完成依赖检查,再启动控制台。这样即便问题仍存在,至少能知道它在哪一层失败。
第二层:后台配置并不会自动跟随网站同步
后来我发现,新下载的控制面板仍带着作者默认的个人资料,而我自己的博客配置已经保存于 GitHub 的网站仓库。
原因不是神秘的数据丢失,而是系统里存在两份 siteConfig.ts:网站前端一份,本地管理器又一份。它们的内容需要明确同步,不能指望重新下载控制面板就自动恢复个人设置。
第三层:Git 有多个互相独立的前提
第一次上传报 HEAD does not match any;之后又遇到仓库 URL 格式错误。排查时我逐一检查了:
- 博客物理路径是否真的是网站源码目录。
HEAD是否存在、当前分支是否正常。- 控制面板保存的
sourceRepoUrl是否符合 Git URL 格式。 - 新电脑是否配置 Git 提交用户名和邮箱。
- 控制面板有没有吞掉
git commit的真实报错。
最终这套同步功能重新恢复正常。准确原因并不只是某个按钮没点对,而是迁移后的本地环境、控制面板配置与仓库状态需要一致。
这次之后我想改掉什么
以后后台应该在“同步”之前给出一次体检:本地路径、提交身份、远程地址、预期分支、待提交内容和可能删除的文件。检查不过就停下来,并明确告诉使用者为什么。
能用固然重要,但知道它为什么能用,才是真正完成一次迁移。
