<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>技术 on SkySeraph</title><link>https://skyseraph.github.io/categories/%E6%8A%80%E6%9C%AF/</link><description>Recent content in 技术 on SkySeraph</description><generator>Hugo</generator><language>zh-CN</language><lastBuildDate>Sun, 26 Apr 2026 22:59:00 +0800</lastBuildDate><atom:link href="https://skyseraph.github.io/categories/%E6%8A%80%E6%9C%AF/index.xml" rel="self" type="application/rss+xml"/><item><title>SkVM 深度解析：为 LLM Agent Skills 构建的编译与运行时系统</title><link>https://skyseraph.github.io/posts/2026/skvm/</link><pubDate>Sun, 26 Apr 2026 22:59:00 +0800</pubDate><guid>https://skyseraph.github.io/posts/2026/skvm/</guid><description>&lt;h1 id="skvm-深度解析为-llm-agent-skills-构建的编译与运行时系统"&gt;SkVM 深度解析：为 LLM Agent Skills 构建的编译与运行时系统&lt;/h1&gt;
&lt;blockquote&gt;
&lt;p&gt;作者：skyseraph &lt;br&gt;
日期：2026-04-26 &lt;br&gt;
原文链接：&lt;a href="https://skyseraph.github.io/posts/2026/skvm/"&gt;SkVM 深度解析&lt;/a&gt; &lt;br&gt;
参考论文：&lt;a href="https://arxiv.org/abs/2604.03088"&gt;SkVM: Revisiting Language VM for Skills across Heterogenous LLMs and Harnesses&lt;/a&gt; &lt;br&gt;
开源代码：&lt;a href="https://github.com/SJTU-IPADS/SkVM/"&gt;SkVM&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;hr&gt;
&lt;h2 id="一背景与问题"&gt;一、背景与问题&lt;/h2&gt;
&lt;p&gt;在 LLM Agent 工程实践中，有一个长期被忽视但极其棘手的问题：&lt;strong&gt;Skill 的可移植性&lt;/strong&gt;。&lt;/p&gt;
&lt;p&gt;一个在 Claude Sonnet 4.6 上运行流畅的 Agent Skill，换到 Qwen3-35B 上可能错误百出；一套针对 OpenClaw 写好的指令集，迁移到 Hermes Agent 后往往需要大量手工调整。这背后的根因是：不同的 LLM 在代码生成、推理、工具调用、指令遵从等维度上能力参差不齐，不同的 Agent 框架在工具集、沙箱环境、交互协议上也各自为政。&lt;/p&gt;
&lt;p&gt;这个问题的本质，和传统计算机体系结构中的&lt;strong&gt;ISA（指令集架构）移植性问题&lt;/strong&gt;高度同构：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;高级语言（Skill 指令）需要编译到具体硬件（LLM + Harness）&lt;/li&gt;
&lt;li&gt;不同的目标平台能力不同，需要针对性的代码生成&lt;/li&gt;
&lt;li&gt;运行时需要 JIT 优化来弥补静态分析的不足&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;SkVM（Skill Virtual Machine）&lt;/strong&gt; 正是从这个类比出发，构建了一套完整的 LLM Skill 编译与运行时系统。&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id="二核心原理语言-vm-的类比"&gt;二、核心原理：语言 VM 的类比&lt;/h2&gt;
&lt;p&gt;SkVM 的核心设计哲学是将 &lt;strong&gt;LLM + Agent Harness 的组合&lt;/strong&gt;类比为计算机体系结构中的&amp;quot;硬件平台&amp;quot;，将 **Agent Skill（一组 Markdown 指令 + 配套脚本）**类比为&amp;quot;高级语言程序&amp;quot;。&lt;/p&gt;</description></item><item><title>LLM时代下的软件范式迁移：从 Prompt Engineering 到 Harness Engineering</title><link>https://skyseraph.github.io/posts/2026/llm_soft_lifecycle/</link><pubDate>Sun, 26 Apr 2026 22:41:30 +0800</pubDate><guid>https://skyseraph.github.io/posts/2026/llm_soft_lifecycle/</guid><description>&lt;blockquote&gt;
&lt;p&gt;作者：skyseraph&lt;br&gt;
日期：2026-04-26&lt;br&gt;
原始链接：&lt;a href="https://skyseraph.github.io/posts/2026/llm_soft_lifecycle"&gt;llm_soft_lifecycle&lt;/a&gt; &lt;br&gt;
本文汇集业界主流 AI 公司实践、领域大咖公开观点与个人思考，所有引用均注明来源&lt;/p&gt;
&lt;/blockquote&gt;
&lt;hr&gt;
&lt;h2 id="目录"&gt;目录&lt;/h2&gt;
&lt;ol&gt;
&lt;li&gt;&lt;a href="#1-%E5%AE%8F%E8%A7%82%E5%88%A4%E6%96%AD%E8%BD%AF%E4%BB%B6%E6%AD%A3%E5%9C%A8%E5%8F%91%E7%94%9F%E6%A0%B9%E6%9C%AC%E6%80%A7%E5%8F%98%E5%8C%96"&gt;宏观判断：软件正在发生根本性变化&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#2-%E4%B8%89%E4%BB%A3%E8%8C%83%E5%BC%8F%E6%BC%94%E8%BF%9B%E4%BB%8E-software-10-%E5%88%B0-software-30"&gt;三代范式演进：从 Software 1.0 到 Software 3.0&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#3-llm-%E5%8D%B3%E6%93%8D%E4%BD%9C%E7%B3%BB%E7%BB%9Fkarpathy-%E7%9A%84%E8%AE%A1%E7%AE%97%E6%9C%BA%E7%A7%91%E5%AD%A6%E8%A7%86%E8%A7%92"&gt;LLM 即操作系统：Karpathy 的计算机科学视角&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#4-%E7%AC%AC%E4%B8%80%E5%B1%82prompt-engineering--%E5%92%92%E8%AF%AD%E6%97%B6%E4%BB%A3%E7%9A%84%E7%BB%88%E7%BB%93"&gt;第一层：Prompt Engineering — 咒语时代的终结&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#5-%E7%AC%AC%E4%BA%8C%E5%B1%82context-engineering--%E7%B3%BB%E7%BB%9F%E8%AE%BE%E8%AE%A1%E7%9A%84%E5%B4%9B%E8%B5%B7"&gt;第二层：Context Engineering — 系统设计的崛起&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#6-%E7%AC%AC%E4%B8%89%E5%B1%82harness-engineering--%E5%9F%BA%E7%A1%80%E8%AE%BE%E6%96%BD%E6%97%B6%E4%BB%A3"&gt;第三层：Harness Engineering — 基础设施时代&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#7-%E4%B8%BB%E6%B5%81-ai-%E5%85%AC%E5%8F%B8%E7%9A%84%E8%8C%83%E5%BC%8F%E5%AE%9E%E8%B7%B5"&gt;主流 AI 公司的范式实践&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#8-%E5%A4%A7%E5%92%96%E8%A7%82%E7%82%B9%E6%B1%87%E6%80%BB"&gt;大咖观点汇总&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#9-%E4%B8%AA%E4%BA%BA%E6%B7%B1%E5%BA%A6%E6%80%9D%E8%80%83%E8%8C%83%E5%BC%8F%E8%BF%81%E7%A7%BB%E7%9A%84%E5%BA%95%E5%B1%82%E9%80%BB%E8%BE%91"&gt;个人深度思考：范式迁移的底层逻辑&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#10-%E5%BB%BA%E8%AE%BE%E6%80%A7%E5%BB%BA%E8%AE%AE%E5%A6%82%E4%BD%95%E5%9C%A8%E8%8C%83%E5%BC%8F%E8%BF%81%E7%A7%BB%E4%B8%AD%E7%AB%99%E7%A8%B3%E8%84%9A%E8%B7%9F"&gt;建设性建议：如何在范式迁移中站稳脚跟&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#11-%E7%BB%93%E8%AF%AD%E6%88%91%E4%BB%AC%E8%BA%AB%E5%A4%84%E5%93%AA%E4%B8%AA%E6%97%B6%E5%88%BB"&gt;结语：我们身处哪个时刻？&lt;/a&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;hr&gt;
&lt;h2 id="1-宏观判断软件正在发生根本性变化"&gt;1. 宏观判断：软件正在发生根本性变化&lt;/h2&gt;
&lt;p&gt;2025—2026年，一个清晰的信号在产业界不断扩大：软件的生产方式、运行方式、甚至定义方式，都正在经历一次根本性的重写。这不是渐进式的工具升级，而是类比 PC 革命、互联网革命量级的范式迁移。&lt;/p&gt;
&lt;p&gt;Anthropic CEO &lt;strong&gt;Dario Amodei&lt;/strong&gt; 在 2026 年初多次公开表示，他在 Anthropic 内部的工程师已经基本不再手写代码——&amp;ldquo;I have engineers within Anthropic who say, &amp;lsquo;I don&amp;rsquo;t write any code anymore. I just let the model write the code. I edit it. I do the things around it.&amp;rsquo;&amp;rdquo; 他进一步预测，AI 将在 6 至 12 个月内完成软件工程师所做的全部工作。^[Yahoo Finance, &lt;em&gt;Anthropic CEO Predicts AI Models Will Replace Software Engineers In 6-12 Months&lt;/em&gt;, 2026-01]&lt;/p&gt;</description></item><item><title>Agent Skill Autonomous</title><link>https://skyseraph.github.io/posts/2026/agent-skill-autonomous/</link><pubDate>Wed, 22 Apr 2026 08:00:00 +0800</pubDate><guid>https://skyseraph.github.io/posts/2026/agent-skill-autonomous/</guid><description>&lt;blockquote&gt;
&lt;p&gt;作者：skyseraph &lt;br&gt;
日期：2026-04-22 &lt;br&gt;
原文链接：&lt;a href="https://skyseraph.github.io/posts/2026/agent-skill-autonomous/"&gt;Agent Skill Autonomous&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;hr&gt;
&lt;h1 id="agent-skill-autonomous"&gt;Agent Skill Autonomous&lt;/h1&gt;
&lt;p&gt;&lt;strong&gt;时间：&lt;/strong&gt; 2026年4月22日&lt;br&gt;
&lt;strong&gt;范围：&lt;/strong&gt; 2026年1月—4月 arXiv 论文 + 官方工具 + 主要开源项目&lt;br&gt;
&lt;strong&gt;总量：&lt;/strong&gt; 32 篇论文 + 6 个工程项目&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id="一背景速览"&gt;一、背景速览&lt;/h2&gt;
&lt;p&gt;Anthropic 于 2025 年 10 月发布 Agent Skills 开放标准：一个 &lt;strong&gt;Skill&lt;/strong&gt; 是以 SKILL.md 为核心的结构化目录，包含声明式工作流指令、可执行脚本与领域参考资料，推理时按需动态加载。与单次 Tool Call（单一函数）不同，Skill 是可复用、可组合的&lt;strong&gt;过程性知识包&lt;/strong&gt;。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;2025-10 Anthropic 发布 Agent Skills 标准&lt;/li&gt;
&lt;li&gt;2025-12 作为开放标准发布，OpenAI Codex 等采纳&lt;/li&gt;
&lt;li&gt;2026-02 公开可用 Skill 超过 28 万个，ClawHub 日提交量峰值超 500&lt;/li&gt;
&lt;li&gt;2026-04 Skill 生态安全事件频发，学术界进入&amp;quot;创建→进化→安全&amp;quot;三线并行研究阶段&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;h2 id="二综述--框架类5-篇"&gt;二、综述 / 框架类（5 篇）&lt;/h2&gt;
&lt;hr&gt;
&lt;h3 id="21-sok-agentic-skills--beyond-tool-use-in-llm-agents"&gt;2.1 SoK: Agentic Skills — Beyond Tool Use in LLM Agents&lt;/h3&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th style="text-align: left"&gt;字段&lt;/th&gt;
 &lt;th style="text-align: left"&gt;内容&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td style="text-align: left"&gt;arXiv&lt;/td&gt;
 &lt;td style="text-align: left"&gt;&lt;a href="https://arxiv.org/abs/2602.20867"&gt;2602.20867&lt;/a&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: left"&gt;发布&lt;/td&gt;
 &lt;td style="text-align: left"&gt;2026-02-24&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: left"&gt;性质&lt;/td&gt;
 &lt;td style="text-align: left"&gt;Systematization of Knowledge&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;strong&gt;核心原理：&lt;/strong&gt; 覆盖 Skill 全生命周期（发现、实践、蒸馏、存储、组合、评估、更新），提出两套互补分类体系：&lt;/p&gt;</description></item><item><title>Vibe Coding 深度观察：一场关于编程本质的世纪之争</title><link>https://skyseraph.github.io/posts/2026/vibe-coding/</link><pubDate>Wed, 15 Apr 2026 22:00:56 +0800</pubDate><guid>https://skyseraph.github.io/posts/2026/vibe-coding/</guid><description>&lt;blockquote&gt;
&lt;p&gt;作者：skyseraph &lt;br&gt;
日期：2026-04-15 &lt;br&gt;
原文链接：&lt;a href="https://skyseraph.github.io/posts/2026/vibe-coding/"&gt;Vibe Coding 深度观察&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;hr&gt;
&lt;h2 id="目录"&gt;目录&lt;/h2&gt;
&lt;ol&gt;
&lt;li&gt;&lt;a href="#1-%E8%B5%B7%E6%BA%90"&gt;起源：一条&amp;quot;随手发的推文&amp;quot;引爆全球&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#2-%E5%85%B3%E9%94%AE%E6%95%B0%E6%8D%AE"&gt;关键数据：一年内规模有多大&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#3-%E4%B8%9A%E5%86%85%E5%A4%A7%E5%92%96%E8%A7%82%E7%82%B9"&gt;业内大咖观点全梳理&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#4-%E6%A0%B8%E5%BF%83%E4%BA%89%E8%AE%AE"&gt;核心争议：三组真正的分歧&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#5-%E6%8A%80%E6%9C%AF%E7%8E%B0%E5%AE%9E"&gt;技术现实：能力边界的实证&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#6-%E6%BC%94%E8%BF%9B%E6%96%B9%E5%90%91%E4%B8%80"&gt;演进方向一：Agentic Engineering（Karpathy）&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#7-%E6%BC%94%E8%BF%9B%E6%96%B9%E5%90%91%E4%BA%8C-openclaw"&gt;演进方向二：OpenClaw — Gateway-First 生态范式&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#8-%E6%BC%94%E8%BF%9B%E6%96%B9%E5%90%91%E4%B8%89-hermes-agent"&gt;演进方向三：Hermes Agent — Learning-First 自进化范式&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#9-%E6%BC%94%E8%BF%9B%E6%96%B9%E5%90%91%E5%9B%9B-harmless-ai"&gt;演进方向四：Harmless AI — Constitutional AI 安全范式&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#10-%E6%9C%AA%E6%9D%A5%E7%A8%8B%E5%BA%8F%E5%91%98"&gt;未来程序员的主要工作与核心价值&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#11-%E5%BB%BA%E8%AE%BE%E6%80%A7%E5%BB%BA%E8%AE%AE"&gt;对开发者、团队和组织的建设性建议&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#12-%E4%B8%AA%E4%BA%BA%E6%80%9D%E8%80%83"&gt;个人思考：编程的本质是否变了？&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#13-%E5%8F%82%E8%80%83%E6%9D%A5%E6%BA%90"&gt;参考来源&lt;/a&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;hr&gt;
&lt;h2 id="1-起源一条随手发的推文引爆全球"&gt;1. 起源：一条&amp;quot;随手发的推文&amp;quot;引爆全球&lt;/h2&gt;
&lt;p&gt;2025年2月6日，Andrej Karpathy 在 X 上发了一条他后来称之为&amp;quot;随手一写的淋浴思考推文&amp;quot;（&lt;em&gt;a shower of thoughts throwaway tweet&lt;/em&gt;）。原文核心如下：&lt;/p&gt;
&lt;p&gt;&amp;ldquo;There&amp;rsquo;s a new kind of coding I call &amp;lsquo;vibe coding&amp;rsquo;, where you fully give in to the vibes, embrace exponentials, and forget that the code even exists. I just see stuff, say stuff, run stuff, and copy-paste stuff, and it mostly works.&amp;rdquo;&lt;/p&gt;</description></item><item><title>博客园部分精彩博文</title><link>https://skyseraph.github.io/posts/2015/cnblogs/</link><pubDate>Sat, 12 Dec 2015 00:00:00 +0000</pubDate><guid>https://skyseraph.github.io/posts/2015/cnblogs/</guid><description>&lt;blockquote&gt;
&lt;p&gt;作者：skyseraph&lt;br&gt;
日期：2015-12-12&lt;br&gt;
原文链接：&lt;a href="https://skyseraph.github.io/posts/2015/cnblogs/"&gt;博客园部分精彩博文&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;hr&gt;
&lt;h1 id="图像算法系列2010"&gt;图像算法系列（2010）&lt;/h1&gt;
&lt;p&gt;&lt;a href="https://www.cnblogs.com/skyseraph/archive/2011/08/27/2155776.html"&gt;【图像算法】图像特征：GLCM - SkySeraph - 博客园&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="https://www.cnblogs.com/skyseraph/archive/2011/08/11/2135291.html"&gt;【图像算法】图像特征：三个图像显著性区域特征提取方法 - SkySeraph - 博客园&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="https://www.cnblogs.com/skyseraph/archive/2011/07/19/2110183.html"&gt;【图像算法】图像特征：几何不变矩&amp;ndash;Hu矩 - SkySeraph - 博客园&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="https://www.cnblogs.com/skyseraph/archive/2011/05/22/2053564.html"&gt;一款图像相关软件PhoXo - SkySeraph - 博客园&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="https://www.cnblogs.com/skyseraph/archive/2011/04/22/2024657.html"&gt;【图像算法】常见的数字图像处理程序大全 - SkySeraph - 博客园&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="https://www.cnblogs.com/skyseraph/archive/2011/03/29/1998681.html"&gt;【图像算法】模板匹配 - SkySeraph - 博客园&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="https://www.cnblogs.com/skyseraph/archive/2011/03/29/1998432.html"&gt;【图像算法】不变矩 - SkySeraph - 博客园&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="https://www.cnblogs.com/skyseraph/archive/2010/12/21/1913058.html"&gt;【图像算法】七种常见阈值分割代码(Otsu、最大熵、迭代法、自适应阀值、手动、迭代法、基本全局阈值法) - SkySeraph - 博客园&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="https://www.cnblogs.com/skyseraph/archive/2010/12/20/1911904.html"&gt;最大熵工具包的使用 - SkySeraph - 博客园&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="https://www.cnblogs.com/skyseraph/archive/2010/12/03/1895791.html"&gt;四大图像库：OpenCV/FreeImage/CImg/CxImage - SkySeraph - 博客园&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="https://www.cnblogs.com/skyseraph/archive/2012/02/23/2365542.html"&gt;【OpenCV应用笔记】(彩色/灰度)图像像素值读取并保存到txt文件 - SkySeraph - 博客园&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="https://www.cnblogs.com/skyseraph/archive/2011/08/01/2124251.html"&gt;【博文汇总】彩色图像分割 Menu - SkySeraph - 博客园&lt;/a&gt;&lt;/p&gt;
&lt;h1 id="彩色图像分割系列2011"&gt;彩色图像分割系列（2011）&lt;/h1&gt;
&lt;p&gt;&lt;a href="http://www.cnblogs.com/skyseraph/archive/2011/05/03/2035643.html"&gt;【图像算法】彩色图像分割专题一：颜色空间1（原理)&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="http://www.cnblogs.com/skyseraph/archive/2011/05/05/2038308.html"&gt;【图像算法】彩色图像分割专题一：颜色空间2（部分结果）&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="http://www.cnblogs.com/skyseraph/archive/2011/05/05/2038317.html"&gt;【图像算法】彩色图像分割专题一：颜色空间3（部分源码）&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="http://www.cnblogs.com/skyseraph/archive/2011/05/13/2045826.html"&gt;【图像算法】彩色图像分割专题二：显示屏幕上任意点颜色值&lt;/a&gt;&lt;/p&gt;</description></item><item><title>Git 工作流最佳实践</title><link>https://skyseraph.github.io/posts/2015/git-workflow-best-practices/</link><pubDate>Tue, 01 Dec 2015 00:00:00 +0000</pubDate><guid>https://skyseraph.github.io/posts/2015/git-workflow-best-practices/</guid><description>&lt;blockquote&gt;
&lt;p&gt;作者：skyseraph&lt;br&gt;
日期：2015-12-01&lt;br&gt;
原文链接：&lt;a href="https://skyseraph.github.io/posts/2015/git-workflow-best-practices/"&gt;Git 工作流最佳实践&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;hr&gt;
&lt;h2 id="分支策略"&gt;分支策略&lt;/h2&gt;
&lt;p&gt;推荐使用 Git Flow 或简化版的 GitHub Flow：&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;main # 生产分支，始终可部署
develop # 开发分支
feature/* # 功能分支
hotfix/* # 紧急修复
&lt;/code&gt;&lt;/pre&gt;&lt;h2 id="提交规范"&gt;提交规范&lt;/h2&gt;
&lt;p&gt;遵循 &lt;a href="https://www.conventionalcommits.org/"&gt;Conventional Commits&lt;/a&gt;：&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;feat: 新增用户登录功能
fix: 修复首页加载闪烁问题
docs: 更新 README
refactor: 重构认证模块
chore: 升级依赖版本
&lt;/code&gt;&lt;/pre&gt;&lt;h2 id="常用命令速查"&gt;常用命令速查&lt;/h2&gt;
&lt;div class="highlight"&gt;&lt;div style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;
&lt;table style="border-spacing:0;padding:0;margin:0;border:0;"&gt;&lt;tr&gt;&lt;td style="vertical-align:top;padding:0;margin:0;border:0;"&gt;
&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt; 1
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt; 2
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt; 3
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt; 4
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt; 5
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt; 6
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt; 7
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt; 8
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt; 9
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;10
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;11
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;12
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;13
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;14
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;15
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td style="vertical-align:top;padding:0;margin:0;border:0;;width:100%"&gt;
&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#6272a4"&gt;# 查看简洁日志&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;git log --oneline --graph --all
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#6272a4"&gt;# 交互式暂存&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;git add -p
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#6272a4"&gt;# 修改最近一次提交&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;git commit --amend --no-edit
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#6272a4"&gt;# 撤销工作区修改&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;git restore &amp;lt;file&amp;gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#6272a4"&gt;# 储藏当前修改&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;git stash push -m &lt;span style="color:#f1fa8c"&gt;&amp;#34;描述&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;git stash pop
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h2 id="gitignore-模板"&gt;.gitignore 模板&lt;/h2&gt;
&lt;pre tabindex="0"&gt;&lt;code class="language-gitignore" data-lang="gitignore"&gt;# Hugo
public/
resources/
.hugo_build.lock

# OS
.DS_Store
Thumbs.db

# Editor
.vscode/
.idea/
*.swp
&lt;/code&gt;&lt;/pre&gt;&lt;h2 id="小结"&gt;小结&lt;/h2&gt;
&lt;p&gt;好的 Git 习惯能大幅降低协作成本，提交信息写清楚，未来的自己会感谢你。&lt;/p&gt;</description></item><item><title>Hugo 博客搭建指南：从零到 GitHub Pages</title><link>https://skyseraph.github.io/posts/2015/hugo-github-pages-guide/</link><pubDate>Tue, 01 Dec 2015 00:00:00 +0000</pubDate><guid>https://skyseraph.github.io/posts/2015/hugo-github-pages-guide/</guid><description>&lt;blockquote&gt;
&lt;p&gt;作者：skyseraph&lt;br&gt;
日期：2015-12-01&lt;br&gt;
原文链接：&lt;a href="https://skyseraph.github.io/posts/2015/hugo-github-pages-guide/"&gt;Hugo 博客搭建指南&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;hr&gt;
&lt;h2 id="前言"&gt;前言&lt;/h2&gt;
&lt;p&gt;本文记录如何使用 Hugo 搭建个人技术博客并部署到 GitHub Pages，全程只需要 Markdown 写作，推送代码后自动构建发布。&lt;/p&gt;
&lt;h2 id="为什么选择-hugo"&gt;为什么选择 Hugo&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;构建速度极快，千篇文章秒级完成&lt;/li&gt;
&lt;li&gt;单二进制文件，无依赖&lt;/li&gt;
&lt;li&gt;主题生态丰富&lt;/li&gt;
&lt;li&gt;原生支持 GitHub Actions 部署&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="安装-hugo"&gt;安装 Hugo&lt;/h2&gt;
&lt;div class="highlight"&gt;&lt;div style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;
&lt;table style="border-spacing:0;padding:0;margin:0;border:0;"&gt;&lt;tr&gt;&lt;td style="vertical-align:top;padding:0;margin:0;border:0;"&gt;
&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;1
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;2
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;3
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;4
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;5
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;6
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;7
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;8
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td style="vertical-align:top;padding:0;margin:0;border:0;;width:100%"&gt;
&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#6272a4"&gt;# macOS&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;brew install hugo
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#6272a4"&gt;# Windows&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;winget install Hugo.Hugo.Extended
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#6272a4"&gt;# 验证&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;hugo version
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h2 id="创建站点"&gt;创建站点&lt;/h2&gt;
&lt;div class="highlight"&gt;&lt;div style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;
&lt;table style="border-spacing:0;padding:0;margin:0;border:0;"&gt;&lt;tr&gt;&lt;td style="vertical-align:top;padding:0;margin:0;border:0;"&gt;
&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;1
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;2
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td style="vertical-align:top;padding:0;margin:0;border:0;;width:100%"&gt;
&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;hugo new site myblog
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#8be9fd;font-style:italic"&gt;cd&lt;/span&gt; myblog
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h2 id="目录结构"&gt;目录结构&lt;/h2&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;myblog/
├── content/ # Markdown 文章
├── themes/ # 主题
├── static/ # 静态资源
├── layouts/ # 模板覆盖
└── hugo.toml # 配置文件
&lt;/code&gt;&lt;/pre&gt;&lt;h2 id="写作流程"&gt;写作流程&lt;/h2&gt;
&lt;p&gt;新建文章：&lt;/p&gt;</description></item></channel></rss>