1<!DOCTYPE html><html lang="zh-Hans"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0, shrink-to-fit=no"><meta http-equiv="X-UA-Compatible" content="IE=edge"><title>æ éææ£ä»¶è¡¥ä¸ï¼ç¨ fork æ¥ç®¡ Hermes æ´æ° ⢠1874's BLOG</title><link rel="icon" href="/favicon.ico" sizes="any"><link rel="icon" href="/icon.svg" type="image/svg+xml"><link rel="apple-touch-icon" href="/apple-touch-icon.png"><link rel="manifest" href="/manifest.webmanifest"><link rel="canonical" href="https://blog.1874.cool/hermes-update-fork/"><link rel="alternate" type="text/markdown" href="https://blog.1874.cool/hermes-update-fork.md"><link href="https://cdn.jsdelivr.net/npm/[email protected]/dist/katex.min.css" rel="stylesheet"><meta name="title" content="æ éææ£ä»¶è¡¥ä¸ï¼ç¨ fork æ¥ç®¡ Hermes æ´æ° ⢠1874's BLOG"><meta name="description" content="éè¿å° Hermes ç origin remote æå个人 forkï¼å¹¶å建 .skip_upstream_prompt é鳿件ï¼å¯è®© hermes update ä» fork æå代ç ï¼å®ç°å®å
¨çæ´æ°ä¸è¡¥ä¸å¼åæµç¨ï¼åæ¶å¯èªè¡è®¾ç½® upstream 忥宿¹ä»åºï¼ä¿æ fork ä¸ä¸æ¸¸ä»£ç 忥ï¼ç®åå¼åãåå¹¶åé¨ç½²æ¥éª¤ã"><meta name="author" content="1874"><meta name="theme-color" content=""><meta property="og:type" content="article"><meta property="og:title" content="æ éææ£ä»¶è¡¥ä¸ï¼ç¨ fork æ¥ç®¡ Hermes æ´æ°"><meta property="og:description" content="éè¿å° Hermes ç origin remote æå个人 forkï¼å¹¶å建 .skip_upstream_prompt é鳿件ï¼å¯è®© hermes update ä» fork æå代ç ï¼å®ç°å®å
¨çæ´æ°ä¸è¡¥ä¸å¼åæµç¨ï¼åæ¶å¯èªè¡è®¾ç½® upstream 忥宿¹ä»åºï¼ä¿æ fork ä¸ä¸æ¸¸ä»£ç 忥ï¼ç®åå¼åãåå¹¶åé¨ç½²æ¥éª¤ã"><meta property="og:url" content="https://blog.1874.cool/hermes-update-fork/"><meta property="og:site_name" content="1874's BLOG"><meta property="og:locale" content="zh_Hans_CN"><!--<meta property="og:image" content={socialImageURL} />--><meta property="og:image:width" content="1200"><meta property="og:image:height" content="630"><meta property="article:author" content="1874"><meta property="article:published_time" content="2026-07-01T06:56:00.000Z"><meta property="twitter:card" content="summary_large_image"><meta property="twitter:url" content="https://blog.1874.cool/hermes-update-fork/"><meta property="twitter:title" content="æ éææ£ä»¶è¡¥ä¸ï¼ç¨ fork æ¥ç®¡ Hermes æ´æ°"><meta property="twitter:description" content="éè¿å° Hermes ç origin remote æå个人 forkï¼å¹¶å建 .skip_upstream_prompt é鳿件ï¼å¯è®© hermes update ä» fork æå代ç ï¼å®ç°å®å
¨çæ´æ°ä¸è¡¥ä¸å¼åæµç¨ï¼åæ¶å¯èªè¡è®¾ç½® upstream 忥宿¹ä»åºï¼ä¿æ fork ä¸ä¸æ¸¸ä»£ç 忥ï¼ç®åå¼åãåå¹¶åé¨ç½²æ¥éª¤ã"><!--<meta property="twitter:image" content={socialImageURL} />--><link rel="sitemap" href="/sitemap-index.xml"><link rel="alternate" type="application/rss+xml" title="1874's BLOG" href="/rss.xml"><meta name="generator" content="Astro v7.0.6"><link rel="stylesheet" href="/_astro/Base.CplzDdJP.css">
1<script type="module" src="/_astro/page.DpeqpYo8.js"></script>
1</head><body>
1<script> 2 const lightModePref = window.matchMedia("(prefers-color-scheme: light)"); 3 4 function getUserPref() { 5 const storedTheme = typeof localStorage !== "undefined" && localStorage.getItem("theme"); 6 return storedTheme || (lightModePref.matches ? "light" : "dark"); 7 } 8 9 function setTheme(newTheme) { 10 if (newTheme !== "light" && newTheme !== "dark") { 11 return console.warn( 12 `Invalid theme value '${newTheme}' received. Expected 'light' or 'dark'.`, 13 ); 14 } 15 16 const root = document.documentElement; 17 18 // root already set to newTheme, exit early 19 if (newTheme === root.getAttribute("data-theme")) { 20 return; 21 } 22 23 root.setAttribute("data-theme", newTheme); 24 25 const colorThemeMetaTag = document.querySelector("meta[name='theme-color']"); 26 const bgColour = getComputedStyle(document.body).getPropertyValue("--theme-bg"); 27 colorThemeMetaTag.setAttribute("content", `hsl(${bgColour})`); 28 if (typeof localStorage !== "undefined") { 29 localStorage.setItem("theme", newTheme); 30 } 31 } 32 33 // initial setup 34 setTheme(getUserPref()); 35 36 // View Transitions hook to restore theme 37 document.addEventListener("astro:after-swap", () => setTheme(getUserPref())); 38 39 // listen for theme-change custom event, fired in src/components/ThemeToggle.astro 40 document.addEventListener("theme-change", (e) => { 41 setTheme(e.detail.theme); 42 }); 43 44 // listen for prefers-color-scheme change. 45 lightModePref.addEventListener("change", (e) => setTheme(e.matches ? "light" : "dark")); 46</script>
46<a href="#main" class="sr-only focus:not-sr-only focus:fixed focus:start-1 focus:top-1.5">skip to content</a><header id="main-header" class="group relative mb-20 flex items-center sm:ps-[5rem]"><div class="flex sm:flex-col"><a href="/" class="inline-flex items-center sm:relative sm:inline-block" aria-current="false"><img src="/_astro/blog.6Wp_r5Mf.png" alt="logo" id="logo" width="64" height="64" class="object-cover me-3 sm:absolute sm:start-[-5rem] sm:me-0 " loading="eager" fetchpriority="high"><!--TODO å客 Logo SVG--><span class="text-xl font-bold sm:text-2xl">1874</span></a><nav id="navigation-menu" class="absolute -inset-x-4 top-14 hidden flex-col items-end gap-y-4 rounded-md bg-bgColor/[.85] py-4 text-accent shadow backdrop-blur group-[.menu-open]:z-50 group-[.menu-open]:flex sm:static sm:z-auto sm:-ms-4 sm:mt-1 sm:flex sm:flex-row sm:items-center sm:divide-x sm:divide-dashed sm:divide-accent sm:rounded-none sm:bg-transparent sm:py-0 sm:shadow-none sm:backdrop-blur-none" aria-label="Main menu"><a href="/" class="px-4 py-4 sm:py-0 sm:hover:underline" aria-current="false" data-astro-prefetch>é¦é¡µ</a><a href="/tags/vibecoding" class="px-4 py-4 sm:py-0 sm:hover:underline" aria-current="false" data-astro-prefetch>VibeCoding</a><a href="/tags/èµå空é´" class="px-4 py-4 sm:py-0 sm:hover:underline" aria-current="false" data-astro-prefetch>èµå空é´</a><a href="/tags/代ç ä¹å¤" class="px-4 py-4 sm:py-0 sm:hover:underline" aria-current="false" data-astro-prefetch>代ç ä¹å¤</a><a href="/about" class="px-4 py-4 sm:py-0 sm:hover:underline" aria-current="false" data-astro-prefetch>å
³äº</a><a href="/links" class="px-4 py-4 sm:py-0 sm:hover:underline" aria-current="false" data-astro-prefetch>åé¾</a></nav></div><site-search id="search" class="ms-auto" data-astro-cid-ac66eqjo="true"><button data-open-modal disabled class="flex h-9 w-9 items-center justify-center rounded-md ring-zinc-400 transition-all hover:ring-2" data-astro-cid-ac66eqjo><svg aria-label="search" class="h-7 w-7" xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5" data-astro-cid-ac66eqjo><path stroke="none" d="M0 0h24v24H0z" data-astro-cid-ac66eqjo></path><path d="M3 10a7 7 0 1 0 14 0 7 7 0 1 0-14 0M21 21l-6-6" data-astro-cid-ac66eqjo></path></svg></button><dialog aria-label="search" class="h-full max-h-full w-full max-w-full border border-zinc-400 bg-bgColor shadow backdrop:backdrop-blur sm:mx-auto sm:mb-auto sm:mt-16 sm:h-max sm:max-h-[calc(100%-8rem)] sm:min-h-[15rem] sm:w-5/6 sm:max-w-[48rem] sm:rounded-md" data-astro-cid-ac66eqjo><div class="dialog-frame flex flex-col gap-4 p-6 pt-12 sm:pt-6" data-astro-cid-ac66eqjo><button data-close-modal class="ms-auto cursor-pointer rounded-md bg-zinc-200 p-2 font-semibold dark:bg-zinc-700" data-astro-cid-ac66eqjo>Close</button><div class="search-container" data-astro-cid-ac66eqjo><div id="cactus__search" data-astro-cid-ac66eqjo></div></div></div></dialog></site-search>
46<script type="module" src="/_astro/Search.astro_astro_type_script_index_0_lang.DZAxRrEu.js"></script>
46<theme-toggle class="ms-2 sm:ms-4"><button id="theme-btn" type="button" class="relative h-9 w-9 rounded-md p-2 ring-zinc-400 transition-all hover:ring-2"><span class="sr-only">Dark Theme</span><svg id="sun-svg" class="absolute start-1/2 top-1/2 h-7 w-7 -translate-x-1/2 -translate-y-1/2 scale-100 opacity-100 transition-all dark:scale-0 dark:opacity-0" aria-hidden="true" focusable="false" stroke-width="1.5" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M12 18C15.3137 18 18 15.3137 18 12C18 8.68629 15.3137 6 12 6C8.68629 6 6 8.68629 6 12C6 15.3137 8.68629 18 12 18Z" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round"></path><path d="M22 12L23 12" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round"></path><path d="M12 2V1" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round"></path><path d="M12 23V22" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round"></path><path d="M20 20L19 19" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round"></path><path d="M20 4L19 5" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round"></path><path d="M4 20L5 19" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round"></path><path d="M4 4L5 5" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round"></path><path d="M1 12L2 12" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round"></path></svg><svg id="moon-svg" class="absolute start-1/2 top-1/2 h-7 w-7 -translate-x-1/2 -translate-y-1/2 scale-0 opacity-0 transition-all dark:scale-100 dark:opacity-100" aria-hidden="true" focusable="false" stroke="currentColor" stroke-width="1.5" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"><path stroke="none" d="M0 0h24v24H0z" fill="none"></path><path d="M12 3c.132 0 .263 0 .393 0a7.5 7.5 0 0 0 7.92 12.446a9 9 0 1 1 -8.313 -12.454z"></path><path d="M17 4a2 2 0 0 0 2 2a2 2 0 0 0 -2 2a2 2 0 0 0 -2 -2a2 2 0 0 0 2 -2"></path><path d="M19 11h2m-1 -1v2"></path></svg></button></theme-toggle>
46<script type="module" src="/_astro/ThemeToggle.astro_astro_type_script_index_0_lang.BvRK_64s.js"></script>
46<mobile-button><button id="toggle-navigation-menu" class="group relative ms-4 h-7 w-7 sm:invisible sm:hidden" type="button" aria-label="Open main menu" aria-expanded="false" aria-haspopup="menu"><svg id="line-svg" class="absolute start-1/2 top-1/2 h-full w-full -translate-x-1/2 -translate-y-1/2 transition-all group-aria-expanded:scale-0 group-aria-expanded:opacity-0" aria-hidden="true" focusable="false" xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor"><path stroke-linecap="round" stroke-linejoin="round" d="M3.75 9h16.5m-16.5 6.75h16.5"></path></svg><svg id="cross-svg" class="absolute text-accent start-1/2 top-1/2 h-full w-full -translate-x-1/2 -translate-y-1/2 scale-0 text-accent opacity-0 transition-all group-aria-expanded:scale-100 group-aria-expanded:opacity-100" aria-hidden="true" focusable="false" xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor"><path stroke-linecap="round" stroke-linejoin="round" d="M6 18L18 6M6 6l12 12"></path></svg></button></mobile-button></header>
46<script type="module" src="/_astro/Header.astro_astro_type_script_index_0_lang.Bwcl6zRD.js"></script>
46<main id="main"><div class="post-layout gap-x-10 xl:flex xl:items-start"><aside class="sticky top-20 order-2 hidden max-h-[calc(100vh-6rem)] shrink-0 basis-64 overflow-y-auto xl:block"><h2 class="font-semibold">Table of Contents</h2><ul class="mt-4 text-xs"><li class><a class="block line-clamp-2 hover:text-accent mt-3" href="#åè¨" aria-label="Scroll to section: åè¨"><span class="me-0.5">#</span>åè¨</a></li><li class><a class="block line-clamp-2 hover:text-accent mt-3" href="#æ ¸å¿å¤æ" aria-label="Scroll to section: æ ¸å¿å¤æ"><span class="me-0.5">#</span>æ ¸å¿å¤æ</a><ul><li class="ms-2"><a class="block line-clamp-2 hover:text-accent mt-2 text-[0.6875rem]" href="#fork-æ£æµéé³" aria-label="Scroll to section: fork æ£æµéé³"><span class="me-0.5">#</span>fork æ£æµéé³</a></li></ul></li><li class><a class="block line-clamp-2 hover:text-accent mt-3" href="#é ç½®-fork-æ´æ°æµç¨" aria-label="Scroll to section: é ç½® fork æ´æ°æµç¨"><span class="me-0.5">#</span>é ç½® fork æ´æ°æµç¨</a></li><li class><a class="block line-clamp-2 hover:text-accent mt-3" href="#æ°çå¼åæµç¨" aria-label="Scroll to section: æ°çå¼åæµç¨"><span class="me-0.5">#</span>æ°çå¼åæµç¨</a><ul><li class="ms-2"><a class="block line-clamp-2 hover:text-accent mt-2 text-[0.6875rem]" href="#1-设置æ¬å°é¡¹ç®-upstream-ä¸ºå®æ¹ä»åº" aria-label="Scroll to section: 1. 设置æ¬å°é¡¹ç® upstream ä¸ºå®æ¹ä»åº"><span class="me-0.5">#</span>1. 设置æ¬å°é¡¹ç® upstream ä¸ºå®æ¹ä»åº</a></li><li class="ms-2"><a class="block line-clamp-2 hover:text-accent mt-2 text-[0.6875rem]" href="#2-å°-upstream-çææ°æ¹å¨åæ¥å°-fork-ä»åº" aria-label="Scroll to section: 2. å° upstream çææ°æ¹å¨åæ¥å° fork ä»åº"><span class="me-0.5">#</span>2. å° upstream çææ°æ¹å¨åæ¥å° fork ä»åº</a></li></ul></li><li class><a class="block line-clamp-2 hover:text-accent mt-3" href="#3-ä¿®æ¹ä»£ç å¹¶åå¹¶å°-main-忝" aria-label="Scroll to section: 3. ä¿®æ¹ä»£ç å¹¶åå¹¶å° main 忝"><span class="me-0.5">#</span>3. ä¿®æ¹ä»£ç å¹¶åå¹¶å° main 忝</a></li><li class><a class="block line-clamp-2 hover:text-accent mt-3" href="#4-æ´æ°æå¡å¨ç-hermes" aria-label="Scroll to section: 4. æ´æ°æå¡å¨ç Hermes"><span class="me-0.5">#</span>4. æ´æ°æå¡å¨ç Hermes</a></li><li class><a class="block line-clamp-2 hover:text-accent mt-3" href="#hermes-æ¯æé£ä¹¦-cardkit-å¡çæµå¼è¾åº" aria-label="Scroll to section: Hermes æ¯æé£ä¹¦ Cardkit å¡çæµå¼è¾åº"><span class="me-0.5">#</span>Hermes æ¯æé£ä¹¦ Cardkit å¡çæµå¼è¾åº</a></li></ul></aside><article class="min-w-0 flex-1 break-words" data-pagefind-body><div id="blog-hero"><div class="aspect-h-9 aspect-w-16 mb-6"><img src="https://image.1874.run/blog/bc1fc4d4819a578c395c1c60f5c46262.png" alt="æ éææ£ä»¶è¡¥ä¸ï¼ç¨ fork æ¥ç®¡ Hermes æ´æ°" width="1440" height="810" class="object-cover" loading="eager" fetchpriority="high"></div><h1 class="title mb-3 sm:mb-1">æ éææ£ä»¶è¡¥ä¸ï¼ç¨ fork æ¥ç®¡ Hermes æ´æ°</h1><div class="flex flex-wrap items-center gap-x-3 gap-y-2"><p class="font-semibold"><time datetime="2026-06-27T08:00:00.000Z">2026å¹´6æ27æ¥</time> / 5 min read</p><span class="rounded-lg bg-quote/10 p-1 text-quote">æåæ´æ°:<time datetime="2026-07-01T06:56:00.000Z" class="ms-1">2026å¹´7æ1æ¥</time></span></div><div class="mt-3"><svg aria-hidden="true" focusable="false" xmlns="http://www.w3.org/2000/svg" class="me-1 inline-block h-6 w-6" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round"><path stroke="none" d="M0 0h24v24H0z" fill="none"></path><path d="M7.859 6h-2.834a2.025 2.025 0 0 0 -2.025 2.025v2.834c0 .537 .213 1.052 .593 1.432l6.116 6.116a2.025 2.025 0 0 0 2.864 0l2.834 -2.834a2.025 2.025 0 0 0 0 -2.864l-6.117 -6.116a2.025 2.025 0 0 0 -1.431 -.593z"></path><path d="M17.573 18.407l2.834 -2.834a2.025 2.025 0 0 0 0 -2.864l-7.117 -7.116"></path><path d="M6 9h-.01"></path></svg><a class="cactus-link inline-block before:content-['#']" aria-label="View more blogs with the tag èµå空é´" href="/tags/èµå空é´/" data-pagefind-filter="tag">èµå空é´</a>, <a class="cactus-link inline-block before:content-['#']" aria-label="View more blogs with the tag hermes" href="/tags/hermes/" data-pagefind-filter="tag">hermes</a></div></div><div class="post-content prose prose-sm prose-cactus mt-12 prose-headings:font-semibold prose-headings:text-accent-2 prose-headings:before:absolute prose-headings:before:-ms-4 prose-headings:before:text-accent prose-headings:before:content-['#'] prose-th:before:content-none"><h2 id="åè¨">åè¨</h2> 47<p>æç Hermes æ¯é¨ç½²å¨å±åç½çæºå¨ä¸çï¼èç®å Hermes 䏿¯æé£ä¹¦æ¸ éç Cardkit å¡çæ¶æ¯ï¼æä»¥æèªå·±æäºè¡¥ä¸æ¥å®ç°ãè卿å¡å¨ä¸ç宿µè¯æ¶ï¼ä¹åçæµç¨æ¯æ±æ»æ¹å¨çæä»¶ï¼ç¶å廿å¡å¨ä¸ Hermes æºä»£ç ç®å½ä¸æ¿æ¢æå¯¹åºæä»¶ãä½å¦æå¨æå¡å¨ä¸ä½¿ç¨<code>hermes update</code>æ´æ°æ¶ï¼åä¼è¢«å®æ¹ä»£ç è¦çäºï¼è½ç¶å¯ä»¥æ¢å¤æåï¼ä½ä¸å¥½åºå¯¹å²çªæ åµï¼ã</p> 48<p>æè¿å¨ Claude ç帮å©ä¸ï¼åç°ä¸ä¸ªé常èæçå¼å/æ´æ°æµç¨
48ã</p> 49<h2 id="æ ¸å¿å¤æ">æ ¸å¿å¤æ</h2> 50<p>Hermes ç <code>hermes update</code> 卿代ç é¶æ®µåºå®æ§è¡ï¼</p> 51<div class="expressive-code"><link rel="stylesheet" href="/_astro/ec.qwcc5.css">
51<script type="module" src="/_astro/ec.0vx5m.js"></script>
51<figure class="frame is-terminal"><figcaption class="header"><span class="title"></span><span class="sr-only">Terminal window</span></figcaption><pre data-language="bash"><code><div class="ec-line"><div class="code"><span style="--0:#50FA7B;--1:#6F42C1">git</span><span style="--0:#F8F8F2;--1:#24292E"> </span><span style="--0:#F1FA8C;--1:#032F62">pull</span><span style="--0:#F8F8F2;--1:#24292E"> </span><span style="--0:#BD93F9;--1:#005CC5">--ff-only</span><span style="--0:#F8F8F2;--1:#24292E"> </span><span style="--0:#F1FA8C;--1:#032F62">origin</span><span style="--0:#F8F8F2;--1:#24292E"> </span><span style="--0:#F1FA8C;--1:#032F62"><branch></span></div></div></code></pre><div class="copy"><div aria-live="polite"></div><button title="Copy to clipboard" data-copied="Copied!" data-code="git pull --ff-only origin <branch>"><div></div></button></div></figure></div> 52<p>æä»¥æ´æ°æ¥æºç±æå¡å¨é¨ç½²ç®å½éç <code>origin</code> remote å³å®ã</p> 53<p>åªè¦ <code>origin</code> æå个人 forkï¼<code>hermes update</code> å°±ä¼ä» fork æå <code>main</code>ï¼å¹¶ç»§ç»æ§è¡ Hermes èªå¸¦çå¿«ç §ãpullãè¯æ³æ ¡éªãåæ»ä¿æ¤ãæ¸ bytecodeãä¾èµéè£ ãè¿ç§»çæ¥éª¤ã</p> 54<h3 id="fork-æ£æµéé³">fork æ£æµéé³</h3> 55<p><code>hermes update</code> æ£æµå° <code>origin</code> æ¯ fork æ¶ï¼å¯è½ä¼æç¤ºæå°è¯åæ¥å®æ¹ upstreamã为äºè®©æå¡å¨æ´æ°åªå ³æ³¨ä¸ªäºº forkï¼éè¦æ»¡è¶³ï¼</p> 56<ul> 57<li>æå¡å¨ä¸æ²¡æ <code>upstream</code> remoteã</li> 58<li>åå¨ <code>$HERMES_HOME/.skip_upstream_prompt</code>ã</li> 59</ul> 60<blockquote> 61<p>注æï¼<code>.skip_upstream_prompt</code> åªè´è´£éé³ fork æ£æµæç¤ºï¼ä¸è´è´£æ¹åä»£ç æåæ¥æºãçæ£è®© update æ fork çå¼å ³æ¯ <code>origin</code>ã</p> 62</blockquote> 63<h2 id="é ç½®-fork-æ´æ°æµç¨">é ç½® fork æ´æ°æµç¨</h2> 64<p>åºäºä»¥ä¸å¤æï¼å¯ä»¥è®¾ç½®æ°çæ´æ°æµç¨ã</p> 65<p>æçæå¡å¨çç¸å ³è·¯å¾ï¼</p> 66<ul> 67<li>Hermes æºç ç®å½ï¼<code>/usr/local/lib/hermes-agent</code></li> 68<li><code>HERMES_HOME</code>ç®å½ï¼<code>~/.hermes</code></li> 69</ul> 70<div class="expressive-code"><figure class="frame is-terminal"><figcaption class="header"><span class="title"></span><span class="sr-only">Terminal window</span></figcaption><pre data-language="bash"><code><div class="ec-line"><div class="code"><span style="--0:#8BE9FD;--1:#005CC5">cd</span><span style="--0:#F8F8F2;--1:#24292E"> </span><span style="--0:#F1FA8C;--1:#032F62">/usr/local/lib/hermes-agent</span></div></div><div class="ec-line"><div class="code"> 71</div></div><div class="ec-line"><div class="code"><span style="--0:#96A1C2;--1:#616972"># 1. æ¹ origin æå个人 fork</span></div></div><div class="ec-line"><div class="code"><span style="--0:#50FA7B;--1:#6F42C1">git</span><span style="--0:#F8F8F2;--1:#24292E"> </span><span style="--0:#F1FA8C;--1:#032F62">remote</span><span style="--0:#F8F8F2;--1:#24292E"> </span><span style="--0:#F1FA8C;--1:#032F62">set-url</span><span style="--0:#F8F8F2;--1:#24292E"> </span><span style="--0:#F1FA8C;--1:#032F62">origin</span><span style="--0:#F8F8F2;--1:#24292E"> </span><span style="--0:#F1FA8C;--1:#032F62">https://github.com/LetTTGACO/hermes-agent.git</span></div></div><div class="ec-line"><div class="code"> 72</div></div><div class="ec-line"><div class="code"><span style="--0:#96A1C2;--1:#616972"># 2. 确认æ upstream remoteï¼fork æ£æµéé³åæï¼</span></div></div><div class="ec-line"><div class="code"><span style="--0:#50FA7B;--1:#6F42C1">git</span><span style="--0:#F8F8F2;--1:#24292E"> </span><span style="--0:#F1FA8C;--1:#032F62">remote</span><span style="--0:#F8F8F2;--1:#24292E"> </span><span style="--0:#F1FA8C;--1:#032F62">get-url</span><span style="--0:#F8F8F2;--1:#24292E"> </span><span style="--0:#F1FA8C;--1:#032F62">upstream</span><span style="--0:#F8F8F2;--1:#24292E"> </span><span style="--0:#FF79C6;--1:#BF3441">2></span><span style="--0:#F1FA8C;--1:#032F62">/dev/null</span><span style="--0:#F8F8F2;--1:#24292E"> </span><span style="--0:#FF79C6;--1:#BF3441">||</span><span style="--0:#F8F8F2;--1:#24292E"> </span><span style="--0:#8BE9FD;--1:#005CC5">echo</span><span style="--0:#F8F8F2;--1:#24292E"> </span><span style="--1:#032F62"><span style="--0:#E9F284">"</span><span style="--0:#F1FA8C">æ upstreamï¼OK</span><span style="--0:#E9F284">"</span></span></div></div><div class="ec-line"><div class="code"> 73</div></div><div class="ec-line"><div class="code"><span style="--0:#96A1C2;--1:#616972"># 3. 建 skip æ è®°ï¼æè¿ä¸ªæä»¶å°±è¡ï¼ä¸éè¦æå 容</span></div></div><div class="ec-line"><div class="code"><span style="--0:#50FA7B;--1:#6F42C1">touch</span><span style="--0:#F8F8F2;--1:#24292E"> </span><span style="--1:#032F62"><span style="--0:#E9F284">"</span><span style="--0:#F1FA8C">~/.hermes/.skip_upstream_prompt</span><span style="--0:#E9F284">"</span></span></div></div><div class="ec-line"><div class="code"> 74</div></div><div class="ec-line"><div class="code"><span style="--0:#96A1C2;--1:#616972"># 4. fetch fork 并对é½å° fork mainï¼æ¸ æå·¥ä½åºæå·¥è¡¥ä¸ï¼</span></div></div><div class="ec-line"><div class="code"><span style="--0:#50FA7B;--1:#6F42C1">git</span><span style="--0:#F8F8F2;--1:#24292E"> </span><span style="--0:#F1FA8C;
74--1:#032F62">fetch</span><span style="--0:#F8F8F2;--1:#24292E"> </span><span style="--0:#F1FA8C;--1:#032F62">origin</span></div></div><div class="ec-line"><div class="code"><span style="--0:#50FA7B;--1:#6F42C1">git</span><span style="--0:#F8F8F2;--1:#24292E"> </span><span style="--0:#F1FA8C;--1:#032F62">reset</span><span style="--0:#F8F8F2;--1:#24292E"> </span><span style="--0:#BD93F9;--1:#005CC5">--hard</span><span style="--0:#F8F8F2;--1:#24292E"> </span><span style="--0:#F1FA8C;--1:#032F62">origin/main</span></div></div><div class="ec-line"><div class="code"> 75</div></div><div class="ec-line"><div class="code"><span style="--0:#96A1C2;--1:#616972"># 5. å°è¯ä¸æ¬¡Hermesæ´æ°ï¼ä¼èªå¨éå¯</span></div></div><div class="ec-line"><div class="code"><span style="--0:#50FA7B;--1:#6F42C1">hermes</span><span style="--0:#F8F8F2;--1:#24292E"> </span><span style="--0:#F1FA8C;--1:#032F62">update</span></div></div></code></pre><div class="copy"><div aria-live="polite"></div><button title="Copy to clipboard" data-copied="Copied!" data-code="cd /usr/local/lib/hermes-agent�git remote set-url origin https://github.com/LetTTGACO/hermes-agent.git�git remote get-url upstream 2>/dev/null || echo "æ upstreamï¼OK"�touch "~/.hermes/.skip_upstream_prompt"�git fetch origin�git reset --hard origin/main�hermes update"><div></div></button></div></figure></div> 76<h2 id="æ°çå¼åæµç¨">æ°çå¼åæµç¨</h2> 77<h3 id="1-设置æ¬å°é¡¹ç®-upstream-ä¸ºå®æ¹ä»åº">1. 设置æ¬å°é¡¹ç® upstream ä¸ºå®æ¹ä»åº</h3> 78<p>妿éè¦ fork ä»åºç代ç è½å®æä¿æå宿¹ä»åºä»£ç ä¸è´ï¼å¯ä»¥è®¾ç½®æ¤é¡¹ï¼</p> 79<div class="expressive-code"><figure class="frame is-terminal"><figcaption class="header"><span class="title"></span><span class="sr-only">Terminal window</span></figcaption><pre data-language="bash"><code><div class="ec-line"><div class="code"><span style="--0:#50FA7B;--1:#6F42C1">git</span><span style="--0:#F8F8F2;--1:#24292E"> </span><span style="--0:#F1FA8C;--1:#032F62">remote</span><span style="--0:#F8F8F2;--1:#24292E"> </span><span style="--0:#F1FA8C;--1:#032F62">add</span><span style="--0:#F8F8F2;--1:#24292E"> </span><span style="--0:#F1FA8C;--1:#032F62">upstream</span><span style="--0:#F8F8F2;--1:#24292E"> </span><span style="--0:#F1FA8C;--1:#032F62">https://github.com/NousResearch/hermes-agent.git</span></div></div></code></pre><div class="copy"><div aria-live="polite"></div><button title="Copy to clipboard" data-copied="Copied!" data-code="git remote add upstream https://github.com/NousResearch/hermes-agent.git"><div></div></button></div></figure></div> 80<h3 id="2-å°-upstream-çææ°æ¹å¨åæ¥å°-fork-ä»åº">2. å° upstream çææ°æ¹å¨åæ¥å° fork ä»åº</h3> 81<div class="expressive-code"><figure class="frame is-terminal"><figcaption class="header"><span class="title"></span><span class="sr-only">Terminal window</span></figcaption><pre data-language="bash"><code><div class="ec-line"><div class="code"><span style="--0:#50FA7B;--1:#6F42C1">git</span><span style="--0:#F8F8F2;--1:#24292E"> </span><span style="--0:#F1FA8C;--1:#032F62">fetch</span><span style="--0:#F8F8F2;--1:#24292E"> </span><span style="--0:#F1FA8C;--1:#032F62">upstream</span></div></div><div class="ec-line"><div class="code"><span style="--0:#50FA7B;--1:#6F42C1">git</span><span style="--0:#F8F8F2;--1:#24292E"> </span><span style="--0:#F1FA8C;--1:#032F62">merge</span><span style="--0:#F8F8F2;--1:#24292E"> </span><span style="--0:#F1FA8C;--1:#032F62">upstream/main</span><span style="--0:#F8F8F2;--1:#24292E"> </span><span style="--0:#96A1C2;--1:#616972"># å²çªï¼è§£å³å git add + git commit</span></div></div><div class="ec-line"><div class="code"><span style="--0:#50FA7B;--1:#6F42C1">git</span><span style="--0:#F8F8F2;--1:#24292E"> </span><span style="--0:#F1FA8C;--1:#032F62">push</span><span style="--0:#F8F8F2;--1:#24292E"> </span><span style="--0:#F1FA8C;--1:#032F62">origin</span><span style="--0:#F8F8F2;--1:#24292E"> </span><span style="--0:#F1FA8C;--1:#032F62">main</span><span style="--0:#F8F8F2;--1:#24292E"> </span><span style="--0:#96A1C2;--1:#616972"># merge 䏿¹ååå²ï¼æ®é push å³å¯ã</span></div></div></code></pre><div class="copy"><div aria-live="polite"></div><button title="Copy to clipboard" data-copied="Copied!" data-code="git fetch upstream�git merge upstream/main # å²çªï¼è§£å³å git add + git commit�git push origin main # merge 䏿¹ååå²ï¼æ®é push å³å¯ã"><div></div></button></div></figure></div> 82<blockquote> 83<p>注æï¼<code>git merge</code> ä¼è®©æäº¤è®°å½å¤ä¸æ¡ merge è®°å½ï¼å¦æè¦ä¿æå线æäº¤ï¼å°±å¾ç¨å° <code>git rebase upstream/main</code> æ¹åæäº¤åå²äºãæææ¶èªç¨çè¯ï¼å°±ç´æ¥ mergeäºï¼ä¸å¶é å¤æåº¦ã</p> 84</blockquote> 85<h2 id="3-ä¿®æ¹ä»£ç å¹¶åå¹¶å°-main-忝">3. ä¿®æ¹ä»£ç å¹¶åå¹¶å° main 忝</h2> 86<p>ä¸ç®¡æ¯æ°å»ºåæ¯è¿æ¯æ°å»º worktree è¿è¡å¼åï¼å¼åå®åªéè¦å°æäº¤åå¹¶å° fork ä
86»åºç main 忝就è¡ï¼ç¶åæ¨éå° fork ä»åºã</p> 87<h2 id="4-æ´æ°æå¡å¨ç-hermes">4. æ´æ°æå¡å¨ç Hermes</h2> 88<p>ç´æ¥æ§è¡<code>hermes update</code>ï¼Hermes çæ´æ°æµç¨å°±åæä»ä½ ç fork ä»åº main 忝æåææ°ä»£ç äºã</p> 89<h2 id="hermes-æ¯æé£ä¹¦-cardkit-å¡çæµå¼è¾åº">Hermes æ¯æé£ä¹¦ Cardkit å¡çæµå¼è¾åº</h2> 90<p>å±ç¤ºä¸æçææãç®å宿¹ Hermes å¨é£ä¹¦ä¸ç表ç°</p> 91<img src="https://image.1874.run/blog/3e8988c5ba1877f2bb15ea4c44d986e4.png" alt="image.png"> 92<p>ææäºè¡¥ä¸ä¹åçææ</p> 93<img src="https://image.1874.run/blog/32eb5c8b82690954e4486670c75a33d5.png" alt="image.png"> 94<p>å 为ç®åæä¸»è¦æ¯èªç¨ï¼å¯è½ä¼æä¸äºææ²¡ä½éªå°ç BUGãå¦æææ³ç¨çè¯ï¼å¯ä»¥ç´æ¥æç §ãé ç½® fork æ´æ°æµç¨ã设置为æçä»åºå°±è¡ã</p><!--<WebMentions />--><meta property="og:"><section id="comments" class="mt-16"></section>
94<script type="module">function e(e){let t=document.querySelector(`iframe.giscus-frame`);!t||!t.contentWindow||t.contentWindow.postMessage({giscus:e},`https://giscus.app`)}function t(){return document.firstElementChild&&document.firstElementChild.getAttribute(`data-theme`)}function n(){let e=document.querySelector(`#comments`),n=t()==`light`?`light`:`dark_dimmed`,r=document.createElement(`script`);r.src=`https://giscus.app/client.js`,r.setAttribute(`data-repo`,`LetTTGACO/blog.1874.cool`),r.setAttribute(`data-repo-id`,`R_kgDOLNI02w`),r.setAttribute(`data-category`,`General`),r.setAttribute(`data-category-id`,`DIC_kwDOLNI0284Cc6X-`),r.setAttribute(`data-mapping`,`og:title`),r.setAttribute(`data-strict`,`0`),r.setAttribute(`data-reactions-enabled`,`0`),r.setAttribute(`data-emit-metadata`,`0`),r.setAttribute(`data-input-position`,`bottom`),r.setAttribute(`data-theme`,n),r.setAttribute(`data-lang`,`zh-CN`),r.setAttribute(`data-loading`,`lazy`),r.setAttribute(`crossorigin`,`anonymous`),r.async=!0,e&&e.appendChild(r)}n(),document.querySelector(`#theme-btn`)?.addEventListener(`click`,()=>{e({setConfig:{theme:t()==`light`?`light`:`dark_dimmed`}})});</script>
94<div class="mb-10" aria-hidden="true"></div></div></article></div><button id="to-top-btn" class="z-90 fixed bottom-8 end-4 flex h-10 w-10 translate-y-28 items-center justify-center rounded-full border-2 border-transparent bg-zinc-200 text-3xl opacity-0 transition-all duration-300 hover:border-zinc-400 data-[show=true]:translate-y-0 data-[show=true]:opacity-100 dark:bg-zinc-700 sm:end-8 sm:h-12 sm:w-12" aria-label="Back to Top" data-show="false"><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" fill="none" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" class="h-6 w-6"><path stroke-linecap="round" stroke-linejoin="round" d="M4.5 15.75l7.5-7.5 7.5 7.5"></path></svg></button></main><footer class="site-footer mt-auto flex flex-col items-center justify-center gap-y-2 pb-4 pt-20 text-center align-top font-semibold text-gray-600 dark:text-gray-400 sm:flex-row sm:gap-x-20 sm:text-xs"><div>© 1874 2026.<span class="block">ð <span><a href="https://www.notion.so" target="_blank" class="py-2 sm:py-0 sm:hover:text-textColor sm:hover:underline">Notion</a>&</span><span><a href="https://elog.1874.cool" target="_blank" class="py-2 sm:py-0 sm:hover:text-textColor sm:hover:underline">Elog</a>&</span><span><a href="https://astro.build" target="_blank" class="py-2 sm:py-0 sm:hover:text-textColor sm:hover:underline">Astro</a>&</span><span><a href="https://vercel.com" target="_blank" class="py-2 sm:py-0 sm:hover:text-textColor sm:hover:underline">Vercel</a></span></span></div><nav aria-label="More on this site" class="flex flex-wrap items-center justify-center gap-y-2 text-sm sm:text-xs"><a href="/" class="mx-2 whitespace-nowrap py-1 sm:hover:text-textColor sm:hover:underline">é¦é¡µ</a><a href="/tags/vibecoding" class="mx-2 whitespace-nowrap py-1 sm:hover:text-textColor sm:hover:underline">VibeCoding</a><a href="/tags/èµå空é´" class="mx-2 whitespace-nowrap py-1 sm:hover:text-textColor sm:hover:underline">èµå空é´</a><a href="/tags/代ç ä¹å¤" class="mx-2 whitespace-nowrap py-1 sm:hover:text-textColor sm:hover:underline">代ç ä¹å¤</a><a href="/about" class="mx-2 whitespace-nowrap py-1 sm:hover:text-textColor sm:hover:underline">å
³äº</a><a href="/links" class="mx-2 whitespace-nowrap py-1 sm:hover:text-textColor sm:hover:underline">åé¾</a></nav></footer></body></html>
94<script type="module" src="/_astro/BlogPost.astro_astro_type_script_index_0_lang.DVw77T0u.js"></script>
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.