用 Git Bisect 二分查找:精准揪出引入 Bug 的罪魁祸首

背景 我的 Hugo 博客使用了 PaperMod 主题,在一次升级后(从 10d3dcc 升到 154d006),右上角的导航菜单出现了样式错乱:菜单项间距变大、悬停效果失效、整体位置偏移。 一开始我尝试在 custom.css 中覆盖样式,改了好几轮都没完全解决。因为我不确定是主题的哪次提交引入了问题——中间可能隔了几十个甚至上百个 commit。 传统的做法是逐个 commit 回退测试,但效率太低。这时候,git bisect 就是最好的工具。 ...

2026年7月26日 · 4 分钟 · Chow Ray · PGP SIGNED

🔐 Web Key Directory (WKD) 部署指南

在给博客加上 GPG 数字签名后,我开始思考一个问题:如何让读者更优雅地获取我的公钥? 传统的做法是把公钥上传到 Keyserver,或者直接贴个下载链接。但最极客的做法是支持 Web Key Directory (WKD) 协议。 简单来说,配置好 WKD 后,任何人只需在终端输入: gpg --locate-key hi@chowray.org GPG 就会自动去我的域名下寻找并下载公钥。这不仅酷,更是将“身份”与“域名”进行了强绑定。 本文记录了在 Hugo + Cloudflare Pages 架构下的部署流程,以及在 Windows 环境下遇到的坑。 ...

2025年12月27日 · 3 分钟 · Chow Ray · PGP SIGNED

📘 Git 极简生存指南

0. 核心概念:Git 的三个空间 理解这三个地方,你就懂了 Git 的一半: 工作区 (Working Directory):你现在的文件夹,你正在写代码、改 Markdown 的地方。 暂存区 (Staging Area):“购物车”。你把想提交的文件先放进来 (git add),准备结账。 仓库 (Repository):“历史存档”。提交后 (git commit),文件就被永久记录在 .git 文件夹里了。 1. 常用配置 (一次性设置) 虽然你配过了,但备忘一下: ...

2025年12月25日 · 5 分钟 · 2072 字 · Chow Ray · PGP SIGNED

📘 TortoiseGit 子模块核验手册:如何看懂 PaperMod 改了什么?

前置条件:你刚刚执行完 子模块更新 操作,且 TortoiseGit 提示更新成功。 目的:在正式提交(Commit)之前,快速审查主题作者(Aditya)到底更新了哪些功能或修复了哪些 Bug,防止升级导致博客样式崩坏。 🏆 招式一:提交窗口“隔空透视” (最推荐) 适用场景:日常快速升级,只想知道“大概更新了什么内容”。无需离开当前界面,效率最高。 ...

2025年12月25日 · 3 分钟 · 1195 字 · Chow Ray · PGP SIGNED

📘 TortoiseGit 子模块更新(升级)操作手册

适用场景:当 Hugo PaperMod 主题发布了新版本,你需要将本地的 themes/PaperMod 文件夹升级到官方最新版时。 1. 核心操作:勾选策略 在博客根目录,右键 -> TortoiseGit -> 子模块更新 (Submodule Update)。 请严格按照下图勾选(四项全选): 选项 (中文) 选项 (英文) 状态 核心理由 (Why) 初始化子模块 --init ✅ 勾选 防漏。万一主题作者新增了内部依赖,这能保证配置被正确初始化,有备无患。 递归 --recursive ✅ 勾选 防套娃。如果 PaperMod 内部还引用了别的子模块,这个选项能一并更新,防止报错。 远端跟踪分支 --remote ✅ 勾选 ⭐ 升级核心。只有勾选它,Git 才会去下载“最新版”。如果不勾,Git 只会将主题重置回你上次记录的旧版本(原地踏步)。 变基 --rebase ✅ 勾选 防冲突/保整洁。如果你不小心改动了主题里的文件,或者文件权限变了,“变基”能把你的改动“浮”在最新版之上,保持历史线是一条直线,比“合并(Merge)”更干净。 2. 关键后续:提交变更 (Commit) 点击“确定”并显示成功后,工作只完成了一半! ...

2025年12月25日 · 2 分钟 · 923 字 · Chow Ray · PGP SIGNED