<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
	<channel>
		<title>工具 on 撷时录</title>
		<link>http://localhost:1313/categories/%E5%B7%A5%E5%85%B7/</link>
		<description>Recent content in 工具 on 撷时录</description>
		<generator>Hugo</generator>
		<language>zh-CN</language>
		
		
		
		
			<lastBuildDate>Sun, 04 Oct 2026 00:00:00 +0800</lastBuildDate>
		
			<atom:link href="http://localhost:1313/categories/%E5%B7%A5%E5%85%B7/index.xml" rel="self" type="application/rss+xml" />
			<item>
				<title>Typora 自定义 github-cus 主题：掘金行内代码与标题自动编号</title>
				<link>http://localhost:1313/p/typora-%E8%87%AA%E5%AE%9A%E4%B9%89-github-cus-%E4%B8%BB%E9%A2%98%E6%8E%98%E9%87%91%E8%A1%8C%E5%86%85%E4%BB%A3%E7%A0%81%E4%B8%8E%E6%A0%87%E9%A2%98%E8%87%AA%E5%8A%A8%E7%BC%96%E5%8F%B7.html</link>
				<pubDate>Sun, 04 Oct 2026 00:00:00 +0800</pubDate>
				<guid>http://localhost:1313/p/typora-%E8%87%AA%E5%AE%9A%E4%B9%89-github-cus-%E4%B8%BB%E9%A2%98%E6%8E%98%E9%87%91%E8%A1%8C%E5%86%85%E4%BB%A3%E7%A0%81%E4%B8%8E%E6%A0%87%E9%A2%98%E8%87%AA%E5%8A%A8%E7%BC%96%E5%8F%B7.html</guid>
				<description>&lt;p&gt;Typora 自带主题升级会覆盖，直接改 &lt;code&gt;github.css&lt;/code&gt; 不稳妥。做法是复制一份自定义主题 &lt;code&gt;github-cus&lt;/code&gt;，在上面改行内代码颜色，以及正文 / 大纲的标题自动编号。&lt;/p&gt;&#xA;&lt;p&gt;本文环境：Linux，主题目录 &lt;code&gt;~/.config/Typora/themes/&lt;/code&gt;（Windows 一般在 &lt;code&gt;%APPDATA%\Typora\themes\&lt;/code&gt;，macOS 在 &lt;code&gt;~/Library/Application Support/abnerworks.Typora/themes/&lt;/code&gt;）。&lt;/p&gt;&#xA;&lt;h2 id=&#34;为什么要复制一份主题&#34;&gt;为什么要复制一份主题&lt;/h2&gt;&#xA;&lt;p&gt;主题目录里的 &lt;code&gt;Readme.md&lt;/code&gt; 写得很清楚：内置 CSS 更新或重装后会被替换，&lt;strong&gt;不要直接改内置主题&lt;/strong&gt;。&lt;/p&gt;&#xA;&lt;p&gt;正确姿势见官方文档：&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://support.typora.io/About-Themes/&#34;&gt;About Themes&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://support.typora.io/Add-Custom-CSS/&#34;&gt;Add Custom CSS&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://support.typora.io/Auto-Numbering/&#34;&gt;Auto Numbering&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;目标文件结构：&lt;/p&gt;&#xA;&lt;figure&#xA;  class=&#34;code-block code-block--chroma code-block--line-numbers&#34;&#xA;  data-code-block&#xA;  data-language=&#34;text&#34;&#xA;&gt;&#xA;  &lt;figcaption class=&#34;code-block__toolbar&#34;&gt;&#xA;    &lt;span class=&#34;code-block__language&#34;&gt;text&lt;/span&gt;&#xA;      &lt;button class=&#34;code-block__copy&#34; type=&#34;button&#34; data-code-copy&gt;复制&lt;/button&gt;&#xA;  &lt;/figcaption&gt;&#xA;  &lt;div class=&#34;code-block__viewport&#34;&gt;&#xA;    &lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt;1&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;~/.config/Typora/themes/&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt;2&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;├── github.css              ← 内置，不动&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt;3&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;├── github/                 ← 内置字体，不动&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt;4&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;├── github-cus.css          ← 自定义主题入口&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt;5&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;└── github-cus/             ← 字体资源（从 github/ 复制）&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&#xA;  &lt;/div&gt;&#xA;  &lt;pre class=&#34;code-block__fallback&#34; hidden aria-hidden=&#34;true&#34;&gt;&lt;code class=&#34;language-text&#34;&gt;~/.config/Typora/themes/&#xA;├── github.css              ← 内置，不动&#xA;├── github/                 ← 内置字体，不动&#xA;├── github-cus.css          ← 自定义主题入口&#xA;└── github-cus/             ← 字体资源（从 github/ 复制）&lt;/code&gt;&lt;/pre&gt;&#xA;  &lt;button class=&#34;code-block__expand&#34; type=&#34;button&#34; data-code-expand hidden&gt;展开全部&lt;/button&gt;&#xA;&lt;/figure&gt;&#xA;&lt;p&gt;Typora 主题名取自 CSS 文件名：&lt;code&gt;github-cus.css&lt;/code&gt; → 主题选择器里一般显示为 &lt;strong&gt;Github Cus&lt;/strong&gt;。&lt;/p&gt;</description>
			</item>
			<item>
				<title>Claude、Codex 全自动模式</title>
				<link>http://localhost:1313/p/claudecodex-%E5%85%A8%E8%87%AA%E5%8A%A8%E6%A8%A1%E5%BC%8F.html</link>
				<pubDate>Thu, 01 Oct 2026 00:00:00 +0800</pubDate>
				<guid>http://localhost:1313/p/claudecodex-%E5%85%A8%E8%87%AA%E5%8A%A8%E6%A8%A1%E5%BC%8F.html</guid>
				<description>&lt;p&gt;&amp;ldquo;YOLO 模式&amp;rdquo;（或叫&amp;quot;全自动模式&amp;quot;）是为了让 AI 编程助手在不经你逐次确认的情况下，全自动执行指令。Codex 和 Claude Code 都有各自的开启方式，但核心逻辑和风险是一样的。&lt;/p&gt;&#xA;&lt;p&gt;YOLO 模式主要通过两种方式开启：&lt;strong&gt;命令行参数&lt;/strong&gt;和&lt;strong&gt;配置文件&lt;/strong&gt;。&lt;/p&gt;&#xA;&lt;p&gt;开启 YOLO 模式意味着将 AI 的操作权限完全放开，这虽然能极大提升效率，但也存在不小的风险。&lt;/p&gt;&#xA;&lt;h3 id=&#34;速览&#34;&gt;速览&lt;/h3&gt;&#xA;&lt;table&gt;&#xA;&#x9;&lt;thead&gt;&#xA;&#x9;&#x9;&#x9;&lt;tr&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;th style=&#34;text-align: left&#34;&gt;工具&lt;/th&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;th style=&#34;text-align: left&#34;&gt;对应的 YOLO 标志&lt;/th&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;th style=&#34;text-align: left&#34;&gt;说明&lt;/th&gt;&#xA;&#x9;&#x9;&#x9;&lt;/tr&gt;&#xA;&#x9;&lt;/thead&gt;&#xA;&#x9;&lt;tbody&gt;&#xA;&#x9;&#x9;&#x9;&lt;tr&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td style=&#34;text-align: left&#34;&gt;&lt;strong&gt;Codex CLI&lt;/strong&gt; (OpenAI)&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td style=&#34;text-align: left&#34;&gt;&lt;code&gt;--yolo&lt;/code&gt; 或 &lt;code&gt;--dangerously-bypass-approvals-and-sandbox&lt;/code&gt;&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td style=&#34;text-align: left&#34;&gt;后者是其完整标志，&lt;code&gt;--yolo&lt;/code&gt; 是别名。&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&lt;/tr&gt;&#xA;&#x9;&#x9;&#x9;&lt;tr&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td style=&#34;text-align: left&#34;&gt;&lt;strong&gt;Claude Code&lt;/strong&gt; (Anthropic)&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td style=&#34;text-align: left&#34;&gt;&lt;code&gt;--dangerously-skip-permissions&lt;/code&gt;&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td style=&#34;text-align: left&#34;&gt;Claude Code 使用的官方标志。&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&lt;/tr&gt;&#xA;&#x9;&lt;/tbody&gt;&#xA;&lt;/table&gt;&#xA;&lt;h3 id=&#34;如何开启-yolo-模式&#34;&gt;如何开启 YOLO 模式&lt;/h3&gt;&#xA;&lt;h4 id=&#34;命令行启动&#34;&gt;命令行启动&lt;/h4&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;&lt;strong&gt;对于 Codex&lt;/strong&gt;：在启动命令后直接加上 &lt;code&gt;--yolo&lt;/code&gt; 或完整标志。&lt;/p&gt;&#xA;&lt;figure&#xA;  class=&#34;code-block code-block--chroma code-block--line-numbers&#34;&#xA;  data-code-block&#xA;  data-language=&#34;bash&#34;&#xA;&gt;&#xA;  &lt;figcaption class=&#34;code-block__toolbar&#34;&gt;&#xA;    &lt;span class=&#34;code-block__language&#34;&gt;bash&lt;/span&gt;&#xA;      &lt;button class=&#34;code-block__copy&#34; type=&#34;button&#34; data-code-copy&gt;复制&lt;/button&gt;&#xA;  &lt;/figcaption&gt;&#xA;  &lt;div class=&#34;code-block__viewport&#34;&gt;&#xA;    &lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt;1&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;codex --yolo &lt;span class=&#34;s2&#34;&gt;&amp;#34;需求描述&amp;#34;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt;2&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# 或者&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt;3&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;codex --dangerously-bypass-approvals-and-sandbox &lt;span class=&#34;s2&#34;&gt;&amp;#34;需求描述&amp;#34;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&#xA;  &lt;/div&gt;&#xA;  &lt;pre class=&#34;code-block__fallback&#34; hidden aria-hidden=&#34;true&#34;&gt;&lt;code class=&#34;language-bash&#34;&gt;codex --yolo &amp;#34;需求描述&amp;#34;&#xA;# 或者&#xA;codex --dangerously-bypass-approvals-and-sandbox &amp;#34;需求描述&amp;#34;&lt;/code&gt;&lt;/pre&gt;&#xA;  &lt;button class=&#34;code-block__expand&#34; type=&#34;button&#34; data-code-expand hidden&gt;展开全部&lt;/button&gt;&#xA;&lt;/figure&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;&lt;strong&gt;对于 Claude Code&lt;/strong&gt;：启动时加上 &lt;code&gt;--dangerously-skip-permissions&lt;/code&gt;。&lt;/p&gt;&#xA;&lt;figure&#xA;  class=&#34;code-block code-block--chroma code-block--line-numbers&#34;&#xA;  data-code-block&#xA;  data-language=&#34;bash&#34;&#xA;&gt;&#xA;  &lt;figcaption class=&#34;code-block__toolbar&#34;&gt;&#xA;    &lt;span class=&#34;code-block__language&#34;&gt;bash&lt;/span&gt;&#xA;      &lt;button class=&#34;code-block__copy&#34; type=&#34;button&#34; data-code-copy&gt;复制&lt;/button&gt;&#xA;  &lt;/figcaption&gt;&#xA;  &lt;div class=&#34;code-block__viewport&#34;&gt;&#xA;    &lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt;1&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;claude --dangerously-skip-permissions &lt;span class=&#34;s2&#34;&gt;&amp;#34;需求描述&amp;#34;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&#xA;  &lt;/div&gt;&#xA;  &lt;pre class=&#34;code-block__fallback&#34; hidden aria-hidden=&#34;true&#34;&gt;&lt;code class=&#34;language-bash&#34;&gt;claude --dangerously-skip-permissions &amp;#34;需求描述&amp;#34;&lt;/code&gt;&lt;/pre&gt;&#xA;  &lt;button class=&#34;code-block__expand&#34; type=&#34;button&#34; data-code-expand hidden&gt;展开全部&lt;/button&gt;&#xA;&lt;/figure&gt;&#xA;&lt;/li&gt;&#xA;&lt;/ul&gt;</description>
			</item>
			<item>
				<title>Cursor WSL 连接失败？手动安装 cursor-server 的完整方案</title>
				<link>http://localhost:1313/p/cursor-wsl-%E8%BF%9E%E6%8E%A5%E5%A4%B1%E8%B4%A5%E6%89%8B%E5%8A%A8%E5%AE%89%E8%A3%85-cursor-server-%E7%9A%84%E5%AE%8C%E6%95%B4%E6%96%B9%E6%A1%88.html</link>
				<pubDate>Thu, 01 Oct 2026 00:00:00 +0800</pubDate>
				<guid>http://localhost:1313/p/cursor-wsl-%E8%BF%9E%E6%8E%A5%E5%A4%B1%E8%B4%A5%E6%89%8B%E5%8A%A8%E5%AE%89%E8%A3%85-cursor-server-%E7%9A%84%E5%AE%8C%E6%95%B4%E6%96%B9%E6%A1%88.html</guid>
				<description>&lt;h2 id=&#34;先说问题&#34;&gt;先说问题&lt;/h2&gt;&#xA;&lt;p&gt;在 Windows 上用 Cursor 打开 WSL 项目时，左下角一直转圈，等待比较久&amp;hellip;&amp;hellip;好像也没有安装好，检查 &lt;code&gt;~/.cursor-server/bin/&lt;/code&gt; 目录，发现 &lt;code&gt;commit id&lt;/code&gt; 的目录是空的，说明自动下载失败了。这在国内网络环境下应该常见，因为服务器文件有 125MB，可能下载中途断掉了。&lt;/p&gt;&#xA;&lt;h2 id=&#34;为什么会有这个问题&#34;&gt;为什么会有这个问题&lt;/h2&gt;&#xA;&lt;p&gt;Cursor 连接 WSL（或远程 SSH）时，需要在 WSL 内安装一个服务端组件 &lt;code&gt;cursor-server&lt;/code&gt;，它本质上是 VSCode Remote 的定制版。自动下载流程大致是：&lt;/p&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Cursor Windows 端发起 WSL 连接&lt;/li&gt;&#xA;&lt;li&gt;WSL 端根据 commit ID 下载对应的 &lt;code&gt;vscode-reh-linux-x64.tar.gz&lt;/code&gt;&lt;/li&gt;&#xA;&lt;li&gt;解压到 &lt;code&gt;~/.cursor-server/bin/&amp;lt;commit-id&amp;gt;/&lt;/code&gt;&lt;/li&gt;&#xA;&lt;li&gt;启动 server，建立通信&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;p&gt;第二步在国内网络环境下经常超时或中断，下载失败后 &lt;code&gt;bin/&amp;lt;commit-id&amp;gt;/&lt;/code&gt; 目录是空的，但 &lt;code&gt;.installation_lock&lt;/code&gt; 文件被写入了，导致 Cursor 以为&amp;quot;正在安装中&amp;quot;，不会重试。&lt;/p&gt;&#xA;&lt;h2 id=&#34;手动安装步骤&#34;&gt;手动安装步骤&lt;/h2&gt;&#xA;&lt;h3 id=&#34;找到当前-cursor-版本的-commit-id&#34;&gt;找到当前 Cursor 版本的 commit ID&lt;/h3&gt;&#xA;&lt;p&gt;Commit ID 在 Cursor 的版本里，命令：&lt;/p&gt;&#xA;&lt;figure&#xA;  class=&#34;code-block code-block--chroma code-block--line-numbers&#34;&#xA;  data-code-block&#xA;  data-language=&#34;bash&#34;&#xA;&gt;&#xA;  &lt;figcaption class=&#34;code-block__toolbar&#34;&gt;&#xA;    &lt;span class=&#34;code-block__language&#34;&gt;bash&lt;/span&gt;&#xA;      &lt;button class=&#34;code-block__copy&#34; type=&#34;button&#34; data-code-copy&gt;复制&lt;/button&gt;&#xA;  &lt;/figcaption&gt;&#xA;  &lt;div class=&#34;code-block__viewport&#34;&gt;&#xA;    &lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt;1&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;cursor --version&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&#xA;  &lt;/div&gt;&#xA;  &lt;pre class=&#34;code-block__fallback&#34; hidden aria-hidden=&#34;true&#34;&gt;&lt;code class=&#34;language-bash&#34;&gt;cursor --version&lt;/code&gt;&lt;/pre&gt;&#xA;  &lt;button class=&#34;code-block__expand&#34; type=&#34;button&#34; data-code-expand hidden&gt;展开全部&lt;/button&gt;&#xA;&lt;/figure&gt;&#xA;&lt;p&gt;输出：&lt;/p&gt;</description>
			</item>
			<item>
				<title>Hugo相对路径图片显示问题的分析与解决</title>
				<link>http://localhost:1313/p/hugo%E7%9B%B8%E5%AF%B9%E8%B7%AF%E5%BE%84%E5%9B%BE%E7%89%87%E6%98%BE%E7%A4%BA%E9%97%AE%E9%A2%98%E7%9A%84%E5%88%86%E6%9E%90%E4%B8%8E%E8%A7%A3%E5%86%B3.html</link>
				<pubDate>Thu, 01 Oct 2026 00:00:00 +0800</pubDate>
				<guid>http://localhost:1313/p/hugo%E7%9B%B8%E5%AF%B9%E8%B7%AF%E5%BE%84%E5%9B%BE%E7%89%87%E6%98%BE%E7%A4%BA%E9%97%AE%E9%A2%98%E7%9A%84%E5%88%86%E6%9E%90%E4%B8%8E%E8%A7%A3%E5%86%B3.html</guid>
				<description>&lt;h2 id=&#34;先说问题&#34;&gt;先说问题&lt;/h2&gt;&#xA;&lt;p&gt;写博客的时候用 Obsidian 插了张图：&lt;/p&gt;&#xA;&lt;figure&#xA;  class=&#34;code-block code-block--chroma code-block--line-numbers&#34;&#xA;  data-code-block&#xA;  data-language=&#34;markdown&#34;&#xA;&gt;&#xA;  &lt;figcaption class=&#34;code-block__toolbar&#34;&gt;&#xA;    &lt;span class=&#34;code-block__language&#34;&gt;markdown&lt;/span&gt;&#xA;      &lt;button class=&#34;code-block__copy&#34; type=&#34;button&#34; data-code-copy&gt;复制&lt;/button&gt;&#xA;  &lt;/figcaption&gt;&#xA;  &lt;div class=&#34;code-block__viewport&#34;&gt;&#xA;    &lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-markdown&#34; data-lang=&#34;markdown&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt;1&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;![&lt;span class=&#34;nt&#34;&gt;img&lt;/span&gt;](&lt;span class=&#34;na&#34;&gt;assets/example.jpg&lt;/span&gt;)&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&#xA;  &lt;/div&gt;&#xA;  &lt;pre class=&#34;code-block__fallback&#34; hidden aria-hidden=&#34;true&#34;&gt;&lt;code class=&#34;language-markdown&#34;&gt;![img](assets/example.jpg)&lt;/code&gt;&lt;/pre&gt;&#xA;  &lt;button class=&#34;code-block__expand&#34; type=&#34;button&#34; data-code-expand hidden&gt;展开全部&lt;/button&gt;&#xA;&lt;/figure&gt;&#xA;&lt;p&gt;编辑器里看着好好的，一跑 &lt;code&gt;hugo&lt;/code&gt; 部署上去，图裂了。打开浏览器开发者工具一看，图片请求的路径根本就不对。&lt;/p&gt;&#xA;&lt;p&gt;检查了一圈，发现这个问题只出现在 &lt;strong&gt;非 bundle 的 md 文件&lt;/strong&gt; 上，用目录包起来的 &lt;code&gt;index.md&lt;/code&gt; 反倒没事。&lt;/p&gt;&#xA;&lt;h2 id=&#34;为什么会有这个问题&#34;&gt;为什么会有这个问题&lt;/h2&gt;&#xA;&lt;h3 id=&#34;hugo-的两种页面&#34;&gt;Hugo 的两种页面&lt;/h3&gt;&#xA;&lt;p&gt;Hugo 里写文章有两种姿势：&lt;/p&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&lt;strong&gt;Page Bundle&lt;/strong&gt; — 建个文件夹，里面放 &lt;code&gt;index.md&lt;/code&gt;，图片丢同目录下&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;figure&#xA;  class=&#34;code-block code-block--chroma code-block--line-numbers&#34;&#xA;  data-code-block&#xA;  data-language=&#34;text&#34;&#xA;&gt;&#xA;  &lt;figcaption class=&#34;code-block__toolbar&#34;&gt;&#xA;    &lt;span class=&#34;code-block__language&#34;&gt;text&lt;/span&gt;&#xA;      &lt;button class=&#34;code-block__copy&#34; type=&#34;button&#34; data-code-copy&gt;复制&lt;/button&gt;&#xA;  &lt;/figcaption&gt;&#xA;  &lt;div class=&#34;code-block__viewport&#34;&gt;&#xA;    &lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;content/posts/my-post/&#xA;├── index.md&#xA;└── some-image.jpg&lt;/code&gt;&lt;/pre&gt;&#xA;  &lt;/div&gt;&#xA;  &lt;pre class=&#34;code-block__fallback&#34; hidden aria-hidden=&#34;true&#34;&gt;&lt;code class=&#34;language-text&#34;&gt;content/posts/my-post/&#xA;├── index.md&#xA;└── some-image.jpg&lt;/code&gt;&lt;/pre&gt;&#xA;  &lt;button class=&#34;code-block__expand&#34; type=&#34;button&#34; data-code-expand hidden&gt;展开全部&lt;/button&gt;&#xA;&lt;/figure&gt;&#xA;&lt;ol start=&#34;2&#34;&gt;&#xA;&lt;li&gt;&lt;strong&gt;Leaf Page&lt;/strong&gt; — 直接一个 &lt;code&gt;.md&lt;/code&gt; 文件&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;figure&#xA;  class=&#34;code-block code-block--chroma code-block--line-numbers&#34;&#xA;  data-code-block&#xA;  data-language=&#34;text&#34;&#xA;&gt;&#xA;  &lt;figcaption class=&#34;code-block__toolbar&#34;&gt;&#xA;    &lt;span class=&#34;code-block__language&#34;&gt;text&lt;/span&gt;&#xA;      &lt;button class=&#34;code-block__copy&#34; type=&#34;button&#34; data-code-copy&gt;复制&lt;/button&gt;&#xA;  &lt;/figcaption&gt;&#xA;  &lt;div class=&#34;code-block__viewport&#34;&gt;&#xA;    &lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;content/posts/my-post.md&lt;/code&gt;&lt;/pre&gt;&#xA;  &lt;/div&gt;&#xA;  &lt;pre class=&#34;code-block__fallback&#34; hidden aria-hidden=&#34;true&#34;&gt;&lt;code class=&#34;language-text&#34;&gt;content/posts/my-post.md&lt;/code&gt;&lt;/pre&gt;&#xA;  &lt;button class=&#34;code-block__expand&#34; type=&#34;button&#34; data-code-expand hidden&gt;展开全部&lt;/button&gt;&#xA;&lt;/figure&gt;&#xA;&lt;p&gt;我这边的目录结构是这样的：&lt;/p&gt;&#xA;&lt;figure&#xA;  class=&#34;code-block code-block--chroma code-block--line-numbers&#34;&#xA;  data-code-block&#xA;  data-language=&#34;text&#34;&#xA;&gt;&#xA;  &lt;figcaption class=&#34;code-block__toolbar&#34;&gt;&#xA;    &lt;span class=&#34;code-block__language&#34;&gt;text&lt;/span&gt;&#xA;      &lt;button class=&#34;code-block__copy&#34; type=&#34;button&#34; data-code-copy&gt;复制&lt;/button&gt;&#xA;  &lt;/figcaption&gt;&#xA;  &lt;div class=&#34;code-block__viewport&#34;&gt;&#xA;    &lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;content/posts/&#xA;├── _index.md&#xA;├── assets/&#xA;│   └── example.jpg&#xA;├── my-post.md              ← 出问题的&#xA;└── my-bundle-post/&#xA;    └── index.md            ← 没问题的&lt;/code&gt;&lt;/pre&gt;&#xA;  &lt;/div&gt;&#xA;  &lt;pre class=&#34;code-block__fallback&#34; hidden aria-hidden=&#34;true&#34;&gt;&lt;code class=&#34;language-text&#34;&gt;content/posts/&#xA;├── _index.md&#xA;├── assets/&#xA;│   └── example.jpg&#xA;├── my-post.md              ← 出问题的&#xA;└── my-bundle-post/&#xA;    └── index.md            ← 没问题的&lt;/code&gt;&lt;/pre&gt;&#xA;  &lt;button class=&#34;code-block__expand&#34; type=&#34;button&#34; data-code-expand hidden&gt;展开全部&lt;/button&gt;&#xA;&lt;/figure&gt;&#xA;&lt;p&gt;Blowfish 主题自带的图片渲染逻辑，会先用 &lt;code&gt;$.Page.Resources.GetMatch&lt;/code&gt; 去捞图片。Bundle 页面自然能捞到，但 leaf page 压根没有 page resources，捞了个空。最后 fallback 到直接把原始相对路径当 src 输出——这就是问题的起点。&lt;/p&gt;</description>
			</item>
			<item>
				<title>VMware Workstation Pro 26H1 安装</title>
				<link>http://localhost:1313/p/vmware-workstation-pro-26h1-%E5%AE%89%E8%A3%85.html</link>
				<pubDate>Thu, 01 Oct 2026 00:00:00 +0800</pubDate>
				<guid>http://localhost:1313/p/vmware-workstation-pro-26h1-%E5%AE%89%E8%A3%85.html</guid>
				<description>&lt;p&gt;本文按 &lt;strong&gt;2026-06-19&lt;/strong&gt; 时点可获取的 &lt;strong&gt;26H1 免费版&lt;/strong&gt; 流程整理，主要记录 &lt;strong&gt;Windows 宿主机&lt;/strong&gt;上的下载和安装步骤。&lt;/p&gt;&#xA;&lt;h2 id=&#34;下载-vmware-workstation-pro-26h1&#34;&gt;下载 VMware Workstation Pro 26H1&lt;/h2&gt;&#xA;&lt;p&gt;Broadcom 注册地址：&lt;a href=&#34;https://profile.broadcom.com/web/registration&#34;&gt;https://profile.broadcom.com/web/registration&lt;/a&gt;&#xA;Broadcom 登录地址：&lt;a href=&#34;https://access.broadcom.com/default/ui/v1/signin/&#34;&gt;https://access.broadcom.com/default/ui/v1/signin/&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;figure&gt;&#xA;  &lt;img src=&#34;http://localhost:1313/posts/%e5%b7%a5%e5%85%b7/vmware/assets/Pasted%20image%2020260619193508.png&#34; alt=&#34;&#34; loading=&#34;lazy&#34; decoding=&#34;async&#34;&gt;&lt;/figure&gt;&#xA;&lt;/p&gt;&#xA;&lt;p&gt;下载入口：&lt;/p&gt;&#xA;&lt;figure&#xA;  class=&#34;code-block code-block--chroma code-block--line-numbers&#34;&#xA;  data-code-block&#xA;  data-language=&#34;text&#34;&#xA;&gt;&#xA;  &lt;figcaption class=&#34;code-block__toolbar&#34;&gt;&#xA;    &lt;span class=&#34;code-block__language&#34;&gt;text&lt;/span&gt;&#xA;      &lt;button class=&#34;code-block__copy&#34; type=&#34;button&#34; data-code-copy&gt;复制&lt;/button&gt;&#xA;  &lt;/figcaption&gt;&#xA;  &lt;div class=&#34;code-block__viewport&#34;&gt;&#xA;    &lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt;1&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;https://support.broadcom.com/group/ecx/productdownloads?subfamily=VMware%20Workstation%20Pro&amp;amp;freeDownloads=true&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&#xA;  &lt;/div&gt;&#xA;  &lt;pre class=&#34;code-block__fallback&#34; hidden aria-hidden=&#34;true&#34;&gt;&lt;code class=&#34;language-text&#34;&gt;https://support.broadcom.com/group/ecx/productdownloads?subfamily=VMware%20Workstation%20Pro&amp;amp;freeDownloads=true&lt;/code&gt;&lt;/pre&gt;&#xA;  &lt;button class=&#34;code-block__expand&#34; type=&#34;button&#34; data-code-expand hidden&gt;展开全部&lt;/button&gt;&#xA;&lt;/figure&gt;&#xA;&lt;h3 id=&#34;选择对应版本&#34;&gt;选择对应版本&lt;/h3&gt;&#xA;&lt;p&gt;&lt;figure&gt;&#xA;  &lt;img src=&#34;http://localhost:1313/posts/%e5%b7%a5%e5%85%b7/vmware/assets/Pasted%20image%2020260619193628.png&#34; alt=&#34;&#34; loading=&#34;lazy&#34; decoding=&#34;async&#34;&gt;&lt;/figure&gt;&#xA;&lt;/p&gt;&#xA;&lt;p&gt;&lt;figure&gt;&#xA;  &lt;img src=&#34;http://localhost:1313/posts/%e5%b7%a5%e5%85%b7/vmware/assets/Pasted%20image%2020260620213828.png&#34; alt=&#34;&#34; loading=&#34;lazy&#34; decoding=&#34;async&#34;&gt;&lt;/figure&gt;&#xA;&lt;/p&gt;&#xA;&lt;figure&#xA;  class=&#34;code-block code-block--chroma code-block--line-numbers&#34;&#xA;  data-code-block&#xA;  data-language=&#34;text&#34;&#xA;&gt;&#xA;  &lt;figcaption class=&#34;code-block__toolbar&#34;&gt;&#xA;    &lt;span class=&#34;code-block__language&#34;&gt;text&lt;/span&gt;&#xA;      &lt;button class=&#34;code-block__copy&#34; type=&#34;button&#34; data-code-copy&gt;复制&lt;/button&gt;&#xA;  &lt;/figcaption&gt;&#xA;  &lt;div class=&#34;code-block__viewport&#34;&gt;&#xA;    &lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;I agree to the Terms and Conditions&lt;/code&gt;&lt;/pre&gt;&#xA;  &lt;/div&gt;&#xA;  &lt;pre class=&#34;code-block__fallback&#34; hidden aria-hidden=&#34;true&#34;&gt;&lt;code class=&#34;language-text&#34;&gt;I agree to the Terms and Conditions&lt;/code&gt;&lt;/pre&gt;&#xA;  &lt;button class=&#34;code-block__expand&#34; type=&#34;button&#34; data-code-expand hidden&gt;展开全部&lt;/button&gt;&#xA;&lt;/figure&gt;&#xA;&lt;blockquote&gt;&#xA;&lt;p&gt;这个按钮可能有时候点击不了，多试几次&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&lt;p&gt;&lt;figure&gt;&#xA;  &lt;img src=&#34;http://localhost:1313/posts/%e5%b7%a5%e5%85%b7/vmware/assets/Pasted%20image%2020260620213950.png&#34; alt=&#34;&#34; loading=&#34;lazy&#34; decoding=&#34;async&#34;&gt;&lt;/figure&gt;&#xA;&lt;/p&gt;&#xA;&lt;p&gt;&lt;figure&gt;&#xA;  &lt;img src=&#34;http://localhost:1313/posts/%e5%b7%a5%e5%85%b7/vmware/assets/Pasted%20image%2020260620214002.png&#34; alt=&#34;&#34; loading=&#34;lazy&#34; decoding=&#34;async&#34;&gt;&lt;/figure&gt;&#xA;&lt;/p&gt;&#xA;&lt;p&gt;可能需要填写一些信息：&lt;/p&gt;&#xA;&lt;p&gt;&lt;figure&gt;&#xA;  &lt;img src=&#34;http://localhost:1313/posts/%e5%b7%a5%e5%85%b7/vmware/assets/Pasted%20image%2020260620214737.png&#34; alt=&#34;&#34; loading=&#34;lazy&#34; decoding=&#34;async&#34;&gt;&lt;/figure&gt;&#xA;&lt;/p&gt;&#xA;&lt;p&gt;&lt;figure&gt;&#xA;  &lt;img src=&#34;http://localhost:1313/posts/%e5%b7%a5%e5%85%b7/vmware/assets/Pasted%20image%2020260620214956.png&#34; alt=&#34;&#34; loading=&#34;lazy&#34; decoding=&#34;async&#34;&gt;&lt;/figure&gt;&#xA;&lt;/p&gt;&#xA;&lt;h2 id=&#34;开始安装&#34;&gt;开始安装&lt;/h2&gt;&#xA;&lt;p&gt;&lt;figure&gt;&#xA;  &lt;img src=&#34;http://localhost:1313/posts/%e5%b7%a5%e5%85%b7/vmware/assets/Pasted%20image%2020260620221249.png&#34; alt=&#34;&#34; loading=&#34;lazy&#34; decoding=&#34;async&#34;&gt;&lt;/figure&gt;&#xA;&lt;/p&gt;&#xA;&lt;p&gt;&lt;figure&gt;&#xA;  &lt;img src=&#34;http://localhost:1313/posts/%e5%b7%a5%e5%85%b7/vmware/assets/Pasted%20image%2020260620221357.png&#34; alt=&#34;&#34; loading=&#34;lazy&#34; decoding=&#34;async&#34;&gt;&lt;/figure&gt;&#xA;&lt;/p&gt;&#xA;&lt;p&gt;&lt;figure&gt;&#xA;  &lt;img src=&#34;http://localhost:1313/posts/%e5%b7%a5%e5%85%b7/vmware/assets/Pasted%20image%2020260620221412.png&#34; alt=&#34;&#34; loading=&#34;lazy&#34; decoding=&#34;async&#34;&gt;&lt;/figure&gt;&#xA;&lt;/p&gt;&#xA;&lt;p&gt;&lt;figure&gt;&#xA;  &lt;img src=&#34;http://localhost:1313/posts/%e5%b7%a5%e5%85%b7/vmware/assets/Pasted%20image%2020260620221429.png&#34; alt=&#34;&#34; loading=&#34;lazy&#34; decoding=&#34;async&#34;&gt;&lt;/figure&gt;&#xA;&#xA;&lt;figure&gt;&#xA;  &lt;img src=&#34;http://localhost:1313/posts/%e5%b7%a5%e5%85%b7/vmware/assets/Pasted%20image%2020260620221448.png&#34; alt=&#34;&#34; loading=&#34;lazy&#34; decoding=&#34;async&#34;&gt;&lt;/figure&gt;&#xA;&#xA;&lt;figure&gt;&#xA;  &lt;img src=&#34;http://localhost:1313/posts/%e5%b7%a5%e5%85%b7/vmware/assets/Pasted%20image%2020260620221456.png&#34; alt=&#34;&#34; loading=&#34;lazy&#34; decoding=&#34;async&#34;&gt;&lt;/figure&gt;&#xA;&#xA;&lt;figure&gt;&#xA;  &lt;img src=&#34;http://localhost:1313/posts/%e5%b7%a5%e5%85%b7/vmware/assets/Pasted%20image%2020260620221505.png&#34; alt=&#34;&#34; loading=&#34;lazy&#34; decoding=&#34;async&#34;&gt;&lt;/figure&gt;&#xA;&#xA;&lt;figure&gt;&#xA;  &lt;img src=&#34;http://localhost:1313/posts/%e5%b7%a5%e5%85%b7/vmware/assets/Pasted%20image%2020260620221525.png&#34; alt=&#34;&#34; loading=&#34;lazy&#34; decoding=&#34;async&#34;&gt;&lt;/figure&gt;&#xA;&#xA;&lt;figure&gt;&#xA;  &lt;img src=&#34;http://localhost:1313/posts/%e5%b7%a5%e5%85%b7/vmware/assets/Pasted%20image%2020260620221723.png&#34; alt=&#34;&#34; loading=&#34;lazy&#34; decoding=&#34;async&#34;&gt;&lt;/figure&gt;&#xA;&#xA;&lt;figure&gt;&#xA;  &lt;img src=&#34;http://localhost:1313/posts/%e5%b7%a5%e5%85%b7/vmware/assets/Pasted%20image%2020260620221927.png&#34; alt=&#34;&#34; loading=&#34;lazy&#34; decoding=&#34;async&#34;&gt;&lt;/figure&gt;&#xA;&lt;/p&gt;</description>
			</item>
			<item>
				<title>双远程工作流</title>
				<link>http://localhost:1313/p/%E5%8F%8C%E8%BF%9C%E7%A8%8B%E5%B7%A5%E4%BD%9C%E6%B5%81.html</link>
				<pubDate>Thu, 01 Oct 2026 00:00:00 +0800</pubDate>
				<guid>http://localhost:1313/p/%E5%8F%8C%E8%BF%9C%E7%A8%8B%E5%B7%A5%E4%BD%9C%E6%B5%81.html</guid>
				<description>&lt;h2 id=&#34;场景&#34;&gt;场景&lt;/h2&gt;&#xA;&lt;p&gt;最近团队基于 Snowy 这个开源项目做二次开发，在它上面加了很多自己的业务功能。但 Snowy 也在持续更新——修 Bug、加新特性、升级依赖版本。&lt;/p&gt;&#xA;&lt;p&gt;问题来了：&lt;strong&gt;自己的代码和上游代码混在一起，怎么才能既自由修改，又能定期拉取上游的最新更新？&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;p&gt;这就是我写这篇文章要分享的。&lt;/p&gt;&#xA;&lt;h2 id=&#34;思路&#34;&gt;思路&lt;/h2&gt;&#xA;&lt;p&gt;我的核心思路是&lt;strong&gt;双远程 + 上游镜像分支&lt;/strong&gt;：&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;code&gt;origin&lt;/code&gt; → 团队自己的远程仓库（日常开发用）&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;upstream&lt;/code&gt; → 开源项目的远程仓库（只读，仅用来拉取更新）&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;upstream-master&lt;/code&gt; 分支 → 上游代码的纯净镜像，绝不直接提交&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;main&lt;/code&gt; 分支 → 团队开发主分支，包含所有自定义代码&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;div class=&#34;solitude-tag tag-mermaid mermaid&#34;&gt;gitGraph&#xA;   commit id: &amp;#34;A&amp;#34;&#xA;   commit id: &amp;#34;B&amp;#34;&#xA;   branch upstream-master&#xA;   checkout upstream-master&#xA;   commit id: &amp;#34;C&amp;#34;&#xA;   commit id: &amp;#34;D&amp;#34;&#xA;   checkout main&#xA;   commit id: &amp;#34;E: 上游v3.6.5&amp;#34;&#xA;   branch feature/xxx&#xA;   checkout feature/xxx&#xA;   commit id: &amp;#34;F&amp;#34;&#xA;   checkout main&#xA;   merge feature/xxx&lt;/div&gt;&#xA;&lt;h2 id=&#34;初始化仓库&#34;&gt;初始化仓库&lt;/h2&gt;&#xA;&lt;h3 id=&#34;进入项目目录&#34;&gt;进入项目目录&lt;/h3&gt;&#xA;&lt;figure&#xA;  class=&#34;code-block code-block--chroma code-block--line-numbers&#34;&#xA;  data-code-block&#xA;  data-language=&#34;bash&#34;&#xA;&gt;&#xA;  &lt;figcaption class=&#34;code-block__toolbar&#34;&gt;&#xA;    &lt;span class=&#34;code-block__language&#34;&gt;bash&lt;/span&gt;&#xA;      &lt;button class=&#34;code-block__copy&#34; type=&#34;button&#34; data-code-copy&gt;复制&lt;/button&gt;&#xA;  &lt;/figcaption&gt;&#xA;  &lt;div class=&#34;code-block__viewport&#34;&gt;&#xA;    &lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt;1&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nb&#34;&gt;cd&lt;/span&gt; /your/project&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&#xA;  &lt;/div&gt;&#xA;  &lt;pre class=&#34;code-block__fallback&#34; hidden aria-hidden=&#34;true&#34;&gt;&lt;code class=&#34;language-bash&#34;&gt;cd /your/project&lt;/code&gt;&lt;/pre&gt;&#xA;  &lt;button class=&#34;code-block__expand&#34; type=&#34;button&#34; data-code-expand hidden&gt;展开全部&lt;/button&gt;&#xA;&lt;/figure&gt;&#xA;&lt;h3 id=&#34;初始化-git&#34;&gt;初始化 Git&lt;/h3&gt;&#xA;&lt;figure&#xA;  class=&#34;code-block code-block--chroma code-block--line-numbers&#34;&#xA;  data-code-block&#xA;  data-language=&#34;bash&#34;&#xA;&gt;&#xA;  &lt;figcaption class=&#34;code-block__toolbar&#34;&gt;&#xA;    &lt;span class=&#34;code-block__language&#34;&gt;bash&lt;/span&gt;&#xA;      &lt;button class=&#34;code-block__copy&#34; type=&#34;button&#34; data-code-copy&gt;复制&lt;/button&gt;&#xA;  &lt;/figcaption&gt;&#xA;  &lt;div class=&#34;code-block__viewport&#34;&gt;&#xA;    &lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt;1&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;git init&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&#xA;  &lt;/div&gt;&#xA;  &lt;pre class=&#34;code-block__fallback&#34; hidden aria-hidden=&#34;true&#34;&gt;&lt;code class=&#34;language-bash&#34;&gt;git init&lt;/code&gt;&lt;/pre&gt;&#xA;  &lt;button class=&#34;code-block__expand&#34; type=&#34;button&#34; data-code-expand hidden&gt;展开全部&lt;/button&gt;&#xA;&lt;/figure&gt;&#xA;&lt;h3 id=&#34;配置两个远程仓库以codeup和gitee为例&#34;&gt;配置两个远程仓库（以codeup和gitee为例）&lt;/h3&gt;&#xA;&lt;figure&#xA;  class=&#34;code-block code-block--chroma code-block--line-numbers&#34;&#xA;  data-code-block&#xA;  data-language=&#34;bash&#34;&#xA;&gt;&#xA;  &lt;figcaption class=&#34;code-block__toolbar&#34;&gt;&#xA;    &lt;span class=&#34;code-block__language&#34;&gt;bash&lt;/span&gt;&#xA;      &lt;button class=&#34;code-block__copy&#34; type=&#34;button&#34; data-code-copy&gt;复制&lt;/button&gt;&#xA;  &lt;/figcaption&gt;&#xA;  &lt;div class=&#34;code-block__viewport&#34;&gt;&#xA;    &lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt;1&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;git remote add origin git@codeup.aliyun.com:your-team/your-project.git&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt;2&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;git remote add upstream git@gitee.com:xiaonuobase/snowy.git&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&#xA;  &lt;/div&gt;&#xA;  &lt;pre class=&#34;code-block__fallback&#34; hidden aria-hidden=&#34;true&#34;&gt;&lt;code class=&#34;language-bash&#34;&gt;git remote add origin git@codeup.aliyun.com:your-team/your-project.git&#xA;git remote add upstream git@gitee.com:xiaonuobase/snowy.git&lt;/code&gt;&lt;/pre&gt;&#xA;  &lt;button class=&#34;code-block__expand&#34; type=&#34;button&#34; data-code-expand hidden&gt;展开全部&lt;/button&gt;&#xA;&lt;/figure&gt;&#xA;&lt;p&gt;&lt;code&gt;origin&lt;/code&gt; 是团队日常用的仓库，&lt;code&gt;upstream&lt;/code&gt; 是 Snowy 的仓库（只拉取，不推送）。&lt;/p&gt;</description>
			</item>
			<item>
				<title>同时配置 Gitee 与 GitHub</title>
				<link>http://localhost:1313/p/%E5%90%8C%E6%97%B6%E9%85%8D%E7%BD%AE-gitee-%E4%B8%8E-github.html</link>
				<pubDate>Thu, 01 Oct 2026 00:00:00 +0800</pubDate>
				<guid>http://localhost:1313/p/%E5%90%8C%E6%97%B6%E9%85%8D%E7%BD%AE-gitee-%E4%B8%8E-github.html</guid>
				<description>&lt;p&gt;开发机上经常要同时推 Gitee、GitHub，有时还要接阿里云 Codeup。默认只会用 &lt;code&gt;~/.ssh/id_rsa&lt;/code&gt;，多平台共用一把钥匙容易乱；更稳妥的做法是：&lt;strong&gt;每平台一把密钥，用 &lt;code&gt;~/.ssh/config&lt;/code&gt; 按 Host 分流&lt;/strong&gt;。&lt;/p&gt;&#xA;&lt;h2 id=&#34;全局-git-身份&#34;&gt;全局 Git 身份&lt;/h2&gt;&#xA;&lt;p&gt;提交作者信息与 SSH 无关，但新环境一般先配好：&lt;/p&gt;&#xA;&lt;figure&#xA;  class=&#34;code-block code-block--chroma code-block--line-numbers&#34;&#xA;  data-code-block&#xA;  data-language=&#34;bash&#34;&#xA;&gt;&#xA;  &lt;figcaption class=&#34;code-block__toolbar&#34;&gt;&#xA;    &lt;span class=&#34;code-block__language&#34;&gt;bash&lt;/span&gt;&#xA;      &lt;button class=&#34;code-block__copy&#34; type=&#34;button&#34; data-code-copy&gt;复制&lt;/button&gt;&#xA;  &lt;/figcaption&gt;&#xA;  &lt;div class=&#34;code-block__viewport&#34;&gt;&#xA;    &lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt;1&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;git config --global user.name &lt;span class=&#34;s2&#34;&gt;&amp;#34;jiangbyte&amp;#34;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt;2&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;git config --global user.email &lt;span class=&#34;s2&#34;&gt;&amp;#34;your@email.com&amp;#34;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt;3&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;git config --global --list&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&#xA;  &lt;/div&gt;&#xA;  &lt;pre class=&#34;code-block__fallback&#34; hidden aria-hidden=&#34;true&#34;&gt;&lt;code class=&#34;language-bash&#34;&gt;git config --global user.name &amp;#34;jiangbyte&amp;#34;&#xA;git config --global user.email &amp;#34;your@email.com&amp;#34;&#xA;git config --global --list&lt;/code&gt;&lt;/pre&gt;&#xA;  &lt;button class=&#34;code-block__expand&#34; type=&#34;button&#34; data-code-expand hidden&gt;展开全部&lt;/button&gt;&#xA;&lt;/figure&gt;&#xA;&lt;p&gt;确认输出里有 &lt;code&gt;user.name&lt;/code&gt; / &lt;code&gt;user.email&lt;/code&gt;。若某仓库要用不同邮箱，再在该仓库里用 &lt;code&gt;git config user.email&lt;/code&gt;（不加 &lt;code&gt;--global&lt;/code&gt;）覆盖即可。&lt;/p&gt;&#xA;&lt;h2 id=&#34;为各平台分别生成-ssh-密钥&#34;&gt;为各平台分别生成 SSH 密钥&lt;/h2&gt;&#xA;&lt;p&gt;目录权限先保证：&lt;/p&gt;&#xA;&lt;figure&#xA;  class=&#34;code-block code-block--chroma code-block--line-numbers&#34;&#xA;  data-code-block&#xA;  data-language=&#34;bash&#34;&#xA;&gt;&#xA;  &lt;figcaption class=&#34;code-block__toolbar&#34;&gt;&#xA;    &lt;span class=&#34;code-block__language&#34;&gt;bash&lt;/span&gt;&#xA;      &lt;button class=&#34;code-block__copy&#34; type=&#34;button&#34; data-code-copy&gt;复制&lt;/button&gt;&#xA;  &lt;/figcaption&gt;&#xA;  &lt;div class=&#34;code-block__viewport&#34;&gt;&#xA;    &lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt;1&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;mkdir -p ~/.ssh&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt;2&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;chmod &lt;span class=&#34;m&#34;&gt;700&lt;/span&gt; ~/.ssh&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&#xA;  &lt;/div&gt;&#xA;  &lt;pre class=&#34;code-block__fallback&#34; hidden aria-hidden=&#34;true&#34;&gt;&lt;code class=&#34;language-bash&#34;&gt;mkdir -p ~/.ssh&#xA;chmod 700 ~/.ssh&lt;/code&gt;&lt;/pre&gt;&#xA;  &lt;button class=&#34;code-block__expand&#34; type=&#34;button&#34; data-code-expand hidden&gt;展开全部&lt;/button&gt;&#xA;&lt;/figure&gt;&#xA;&lt;p&gt;分别生成三把密钥（文件名自定义，别互相覆盖）：&lt;/p&gt;</description>
			</item>
			<item>
				<title>用 conda 固定默认环境 normal</title>
				<link>http://localhost:1313/p/%E7%94%A8-conda-%E5%9B%BA%E5%AE%9A%E9%BB%98%E8%AE%A4%E7%8E%AF%E5%A2%83-normal.html</link>
				<pubDate>Thu, 01 Oct 2026 00:00:00 +0800</pubDate>
				<guid>http://localhost:1313/p/%E7%94%A8-conda-%E5%9B%BA%E5%AE%9A%E9%BB%98%E8%AE%A4%E7%8E%AF%E5%A2%83-normal.html</guid>
				<description>&lt;h2 id=&#34;先说目标&#34;&gt;先说目标&lt;/h2&gt;&#xA;&lt;p&gt;机器上同时有三套 Python 很容易搅在一起：&lt;/p&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;系统自带的 &lt;code&gt;/usr/bin/python3&lt;/code&gt;&lt;/li&gt;&#xA;&lt;li&gt;conda 的 &lt;code&gt;base&lt;/code&gt;&lt;/li&gt;&#xA;&lt;li&gt;自己建的业务 / 学习环境&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;p&gt;想要的结果很简单：&lt;strong&gt;不管终端还是 Cursor，一律只用名为 &lt;code&gt;normal&lt;/code&gt; 的 conda 环境&lt;/strong&gt;，不要再落到 &lt;code&gt;base&lt;/code&gt; 或系统 Python 上。&lt;/p&gt;&#xA;&lt;p&gt;下面以 miniforge（路径 &lt;code&gt;/home/charlie/miniforge3&lt;/code&gt;）为例，过程对 Anaconda / Miniconda 同样适用，改一下前缀即可。&lt;/p&gt;&#xA;&lt;h2 id=&#34;创建-normal-环境&#34;&gt;创建 &lt;code&gt;normal&lt;/code&gt; 环境&lt;/h2&gt;&#xA;&lt;p&gt;选用相对稳妥的 3.12：&lt;/p&gt;&#xA;&lt;figure&#xA;  class=&#34;code-block code-block--chroma code-block--line-numbers&#34;&#xA;  data-code-block&#xA;  data-language=&#34;bash&#34;&#xA;&gt;&#xA;  &lt;figcaption class=&#34;code-block__toolbar&#34;&gt;&#xA;    &lt;span class=&#34;code-block__language&#34;&gt;bash&lt;/span&gt;&#xA;      &lt;button class=&#34;code-block__copy&#34; type=&#34;button&#34; data-code-copy&gt;复制&lt;/button&gt;&#xA;  &lt;/figcaption&gt;&#xA;  &lt;div class=&#34;code-block__viewport&#34;&gt;&#xA;    &lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt;1&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;conda create -n normal &lt;span class=&#34;nv&#34;&gt;python&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;3.12 -y&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&#xA;  &lt;/div&gt;&#xA;  &lt;pre class=&#34;code-block__fallback&#34; hidden aria-hidden=&#34;true&#34;&gt;&lt;code class=&#34;language-bash&#34;&gt;conda create -n normal python=3.12 -y&lt;/code&gt;&lt;/pre&gt;&#xA;  &lt;button class=&#34;code-block__expand&#34; type=&#34;button&#34; data-code-expand hidden&gt;展开全部&lt;/button&gt;&#xA;&lt;/figure&gt;&#xA;&lt;p&gt;创建完成后确认：&lt;/p&gt;&#xA;&lt;figure&#xA;  class=&#34;code-block code-block--chroma code-block--line-numbers&#34;&#xA;  data-code-block&#xA;  data-language=&#34;bash&#34;&#xA;&gt;&#xA;  &lt;figcaption class=&#34;code-block__toolbar&#34;&gt;&#xA;    &lt;span class=&#34;code-block__language&#34;&gt;bash&lt;/span&gt;&#xA;      &lt;button class=&#34;code-block__copy&#34; type=&#34;button&#34; data-code-copy&gt;复制&lt;/button&gt;&#xA;  &lt;/figcaption&gt;&#xA;  &lt;div class=&#34;code-block__viewport&#34;&gt;&#xA;    &lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt;1&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;conda env list&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt;2&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# base                     /home/charlie/miniforge3&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt;3&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# normal                   /home/charlie/miniforge3/envs/normal&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&#xA;  &lt;/div&gt;&#xA;  &lt;pre class=&#34;code-block__fallback&#34; hidden aria-hidden=&#34;true&#34;&gt;&lt;code class=&#34;language-bash&#34;&gt;conda env list&#xA;# base                     /home/charlie/miniforge3&#xA;# normal                   /home/charlie/miniforge3/envs/normal&lt;/code&gt;&lt;/pre&gt;&#xA;  &lt;button class=&#34;code-block__expand&#34; type=&#34;button&#34; data-code-expand hidden&gt;展开全部&lt;/button&gt;&#xA;&lt;/figure&gt;&#xA;&lt;p&gt;解释器路径固定为：&lt;/p&gt;</description>
			</item>
	</channel>
</rss>
