🤖HermesBlog
บทเรียนอย่างเป็นทางการของ Hermes · Parte 158/9/2026

บทเรียน 15: Git Worktrees — Parallel Agents

บทเรียน 15: Git Worktrees — Parallel Agents — คู่มือเข้าใจง่ายตามเอกสารอย่างเป็นทางการ

นี่เป็นส่วนหนึ่งของชุดบทช่วยสอนอย่างเป็นทางการของ Hermes Agent ดูบทช่วยสอนทั้งหมด

ลองนึกภาพว่าคุณมีครัวหนึ่งห้องแต่มีพ่อครัวสองคน ถ้าทั้งคู่ทำอาหารบนเคาน์เตอร์เดียวกัน พวกเขาก็จะชนศอกกัน แป้งกระเด็นใส่กัน และทำอาหารของกันและกันเสียหาย Git worktrees เปรียบเสมือนการให้พ่อครัวแต่ละคนมีเคาน์เตอร์เป็นของตัวเอง—ครัวเดียวกัน แต่มีพื้นที่ทำงานแยกจากกัน นี่คือสิ่งที่ฟีเจอร์นี้มอบให้กับ AI agents ของคุณนั่นเอง


Hermes tutorial

ทำไมต้องสนใจ? ปัญหาของการเช็คเอาต์เพียงจุดเดียว

Hermes Agent ถือว่า โฟลเดอร์ที่คุณรันมัน เป็นรากของโปรเจกต์ (project root) ถ้าคุณเปิดใช้ agents สองตัวในโฟลเดอร์เดียวกัน พวกมันจะแชร์ไฟล์ทุกไฟล์ร่วมกัน ซึ่งหมายความว่า:

  • Agent A อาจลบไฟล์ที่ Agent B กำลังแก้ไขอยู่
  • คุณไม่สามารถบอกได้ว่าการเปลี่ยนแปลงไหนมาจากการทดลองไหน
  • การย้อนกลับ (rollback) กลายเป็นเรื่องยุ่งเหยิง—การเลิกทำของ agent หนึ่งอาจล้างงานของอีก agent หนึ่งได้

Worktrees แก้ปัญหานี้โดยการให้ agent แต่ละตัวมี:

  • Branch ของตัวเอง (เพื่อให้การเปลี่ยนแปลงไม่ชนกัน)
  • โฟลเดอร์ทำงานของตัวเอง (เพื่อให้ไฟล์ไม่ขัดแย้งกัน)
  • ประวัติ checkpoint ของตัวเอง (เพื่อให้ /rollback ส่งผลกับ agent นั้นเท่านั้น)

ขั้นตอนที่ 1: สร้าง Worktree (คำสั่งพื้นฐาน)

จาก repository หลักของคุณ (อันที่มี .git/ อยู่ข้างใน) รันคำสั่ง:

git worktree add ../my-agent-folder -b my-feature-branch

มาวิเคราะห์คำสั่งนี้กัน:

  • ../my-agent-folder – ตำแหน่งที่โฟลเดอร์ใหม่จะถูกสร้าง (อยู่ภายนอก repo หลักของคุณ)
  • -b my-feature-branch – สร้าง branch ใหม่สำหรับ agent นี้

ตอนนี้คุณก็จะมีสำเนาโปรเจกต์ที่แยกออกมาใหม่และเป็นอิสระแล้ว


ขั้นตอนที่ 2: ชี้ Hermes ไปที่ Worktree

คุณสามารถใช้ worktree ได้สองวิธี:

ตัวเลือก A: CLI (ง่ายที่สุด)
แค่ใช้คำสั่ง cd เข้าไปใน worktree แล้วรัน Hermes ตรงนั้น:

cd ../my-agent-folder
hermes chat

ตัวเลือก B: เกตเวย์รับส่งข้อความ (เช่น Slack หรือ Discord)
หากคุณใช้เกตเวย์ ให้แก้ไข ~/.hermes/config.yaml และตั้งค่า terminal.cwd เป็นพาธของ worktree:

terminal:
  cwd: /path/to/my-agent-folder

ตอนนี้ทุกข้อความที่ agent นั้นได้รับจะทำงานภายในโฟลเดอร์ที่แยกออกมานี้


ขั้นตอนที่ 3: รัน Agents หลายตัวพร้อมกัน

สร้าง worktree ได้มากเท่าที่คุณต้องการ:

git worktree add ../agent-experiment-1 -b exp-1
git worktree add ../agent-experiment-2 -b exp-2

จากนั้นเริ่มเซสชัน Hermes หนึ่งตัวในแต่ละโฟลเดอร์ พวกมันจะไม่แตะต้องไฟล์ของกันและกัน และแต่ละตัวก็มี branch ของตัวเองสำหรับ commit


ขั้นตอนที่ 4: ทำความสะอาดเมื่อเสร็จสิ้น

เมื่อการทดลองเสร็จสิ้น ให้ลบ worktree ทิ้ง:

git worktree remove ../agent-experiment-1
git branch -d exp-1

คำสั่งแรกจะลบโฟลเดอร์ ส่วนคำสั่งที่สองจะลบ branch repo หลักของคุณก็จะสะอาดเหมือนเดิม


จุดสำคัญที่ต้องจำ

  • Worktrees มีต้นทุนต่ำ – พวกมันไม่ได้คัดลอกทั้ง repo แค่คัดลอกไฟล์ที่คุณต้องการเท่านั้น
  • Agent แต่ละตัวมีประวัติ /rollback ของตัวเอง – ไม่มีเหตุการณ์เลิกทำข้าม agent ที่หายนะอีกต่อไป
  • ใช้ branches อย่างชาญฉลาด – ตั้งชื่อให้ชัดเจน (เช่น refactor-login, fix-bug-42) เพื่อให้คุณรู้ว่า agent แต่ละตัวทำอะไรไปบ้าง

สรุป

Git worktrees ช่วยให้คุณรัน Hermes agents หลายตัวบนโปรเจกต์เดียวกันได้โดยไม่ก้าวก่ายกัน สร้าง worktree หนึ่งอันต่อหนึ่ง agent ชี้ Hermes ไปที่มัน แล้วก็เสร็จเรียบร้อย เหมือนกับการให้พ่อครัวแต่ละคนมีเขียงของตัวเอง—ครัวเดียวกัน ไม่มีการชนกันเลย

ต่อไป: ในบทช่วยสอนที่ 16 เราจะปรับใช้ Hermes ด้วย Docker—ผู้ช่วยที่ซ่อมแซมตัวเองได้และพร้อมใช้งานตลอดเวลา

📖 เอกสารทางการ

この記事は Hermes Agent のเอกสารทางการに基づいています:เอกสารทางการ › user-guide/git-worktrees