# Codex worktree: สำเนาสำหรับทำงานแยกต่างหากสำหรับงานที่สอง

> สำเนาสำหรับทำงานของ Codex CLI 0.155.1: แฟล็ก worktree รุ่นทดลอง, HEAD ต้นทาง, การตรวจสอบโฟลเดอร์ใหม่, การเก็บรักษาผลลัพธ์ และการลบอย่างปลอดภัย

Source: https://ailoot.ai/blog/th/codex-worktree-separate-task/
Canonical: https://ailoot.ai/blog/th/codex-worktree-separate-task/
Language: th
Publisher: Ailoot (https://ailoot.ai/)
Translation: guide-086
Revision: sha256-2cd862d9dfda10c81048520f98e2def14594f14e75678e497d119b0e8aba4091


<div class="aside" data-semantic="key-takeaway" role="note" aria-label="ประเด็นสำคัญของส่วนนี้">

ประเด็นสำคัญ

ใน Codex CLI เวอร์ชัน 0.155.1 คุณสร้างสำเนาสำหรับทำงานแยกต่างหากสำหรับงานที่สองได้ด้วย `codex --enable worktrees --worktree` ฟีเจอร์นี้ยังเป็นรุ่นทดลองและปิดใช้งานไว้เป็นค่าเริ่มต้น: หากคุณยังไม่ได้เปิดใช้งาน Codex จะปฏิเสธการเริ่มทำงานด้วย `--worktree` หากไม่มี `--enable worktrees` สำเนาจะถูกสร้างจากคอมมิตล่าสุดของโปรเจกต์ต้นฉบับ (HEAD) โดยไม่มีการเปลี่ยนแปลงที่ยังไม่ได้คอมมิต และอยู่ในสถานะ detached HEAD—โดยไม่มีสาขาที่ระบุชื่อผูกอยู่

</div>

ตัวอย่างเช่น คุณกำลังใช้ Codex CLI เพื่อปรับโครงสร้างโมดูลหนึ่ง แล้วมีงานที่สองเข้ามา: เขียนการทดสอบสำหรับอีกโมดูลหนึ่ง การเปิดเซสชันที่สองในโฟลเดอร์เดียวกันมีความเสี่ยง เพราะอาจสับสนระหว่างการเปลี่ยนแปลงของงานแรกกับงานที่สองได้ง่าย แฟล็ก `--worktree` จะสร้างโฟลเดอร์แยกของโปรเจกต์เดียวกันสำหรับงานที่สอง โดยปล่อยโฟลเดอร์ของงานแรกไว้ตามเดิม

แหล่งข้อมูลเชิงปฏิบัติเกี่ยวกับการทำงานกับเอเจนต์พร้อมกัน: [เอกสารประกอบ Ailoot](https://ailoot.ai/docs/)



## `--worktree` สร้างอะไร และมีไฟล์ใดอยู่ในสำเนาบ้าง

ในศัพท์ของ Git worktree คือโฟลเดอร์ทำงานเพิ่มเติมที่เชื่อมโยงกับรีโพซิทอรีเดียวกัน โดยใช้ประวัติคอมมิตร่วมกัน แต่มีชุดไฟล์ของตัวเองบนดิสก์ ใน Codex CLI 0.155.1 แฟล็ก `--worktree` ใช้กลไกนี้ของ Git เพื่อเริ่มเซสชันเอเจนต์ใหม่ในโฟลเดอร์แยก โดยปล่อยโฟลเดอร์ที่กำลังทำงานชิ้นแรกไว้ตามเดิม

สำเนาสำหรับทำงานใหม่นี้มีไฟล์จากคอมมิตที่ HEAD ของโปรเจกต์ต้นฉบับชี้ไปหาเมื่อเริ่มทำงาน ซึ่งก็คือคอมมิตล่าสุด ไม่ใช่สถานะล่าสุดที่คุณบันทึกไฟล์ในโปรแกรมแก้ไขคำสั่ง การบันทึกในโปรแกรมแก้ไขคำสั่งไม่เหมือนกับการคอมมิตใน Git หากโฟลเดอร์แรกยังมีการเปลี่ยนแปลงที่ไม่ได้คอมมิตเมื่อคุณเริ่มงานที่สอง การเปลี่ยนแปลงเหล่านั้นจะยังอยู่เฉพาะในโฟลเดอร์แรก

นี่ไม่ใช่การสำรองข้อมูลทั้งรีโพซิทอรี หรือการแยกการทำงานของคอมพิวเตอร์ทั้งเครื่อง แต่เป็นโฟลเดอร์ทำงานที่สองของโปรเจกต์เดียวกัน ซึ่งเข้าถึงสาขาและประวัติคอมมิตเดียวกันได้ สำหรับกลไกที่คล้ายกันในเครื่องมืออื่น ดูที่ [Claude Code และ git worktree: งานแบบขนาน](https://ailoot.ai/blog/th/claude-code-git-worktree/)

## การเตรียมตัว: เวอร์ชัน ความน่าเชื่อถือของโปรเจกต์ และคอมมิต

ตรวจสอบสามสิ่งนี้ก่อนเริ่ม เรียกใช้คำสั่งจากโฟลเดอร์ของโปรเจกต์ต้นฉบับ

ข้อแรก ตรวจสอบเวอร์ชัน Codex CLI คำแนะนำเหล่านี้ใช้กับเวอร์ชัน 0.155.1 หากใช้เวอร์ชันอื่น ให้ตรวจสอบการทำงานของแฟล็กแยกต่างหาก:

```bash
codex --version
```

ข้อสอง คุณต้องมีโปรเจกต์ Git ในเครื่องที่ HEAD ชี้ไปยังคอมมิตที่มีอยู่ กล่าวอีกอย่างคือ รีโพซิทอรีต้องมีคอมมิตอย่างน้อยหนึ่งรายการ หากไม่มี ก็ไม่มีต้นทางให้สร้างสำเนา

ข้อสาม ต้นทางต้องเชื่อถือได้: หากโปรเจกต์ถูกระบุไว้อย่างชัดเจนว่าไม่น่าเชื่อถือ การเริ่มทำงานด้วย `--worktree` จะล้มเหลวก่อนสร้างสำเนา หากคุณเพิ่งตั้งค่า Codex CLI การเตรียมตัวเบื้องต้นอธิบายไว้ใน [Codex (OpenAI): คืออะไรและเริ่มต้นใช้งานอย่างไร](https://ailoot.ai/blog/th/openai-codex-install/)

ตรวจสอบรายการสำเนาสำหรับทำงานที่มีอยู่ของรีโพซิทอรีนี้ไว้ล่วงหน้า คุณใช้เปรียบเทียบได้หลังจากเริ่มทำงาน:

```bash
git worktree list
```

โฟลเดอร์แยกช่วยให้แยกงานออกจากกันได้ แนวทางโดยรวมสำหรับการทำงานกับเอเจนต์มีแหล่งข้อมูลเชิงปฏิบัติใน [เอกสารประกอบ Ailoot](https://ailoot.ai/docs/)



## ขั้นตอน: เริ่มสำเนาแยกสำหรับงานที่สอง

1.  ### เปิดใช้งานฟีเจอร์รุ่นทดลองและเริ่มเซสชันด้วยสำเนาแยก

    เรียกใช้คำสั่งจากโฟลเดอร์โปรเจกต์ต้นฉบับ ซึ่งคุณกำลังทำงานแรกอยู่แล้ว

    ```bash
    codex --enable worktrees --worktree
    ```

    ผลลัพธ์ที่คาดหวัง: Codex สร้างสำเนาสำหรับทำงานใหม่ของโปรเจกต์จาก HEAD ปัจจุบัน แล้วเปิดเซสชันเอเจนต์ในสำเนานั้น สำเนาอยู่ในสถานะ detached HEAD โดยไม่มีสาขาที่ระบุชื่อผูกอยู่ นี่คือการทำงานของแฟล็กในเวอร์ชัน 0.155.1

2.  ### แสดงรายการสำเนาสำหรับทำงานอีกครั้งในเทอร์มินัลอีกหน้าต่างหนึ่งของโปรเจกต์ต้นฉบับ

    ```bash
    git worktree list
    ```

    ผลลัพธ์ที่คาดหวัง: เอาต์พุตมีบรรทัดเพิ่มเติมที่ระบุพาธของสำเนาใหม่และเครื่องหมาย detached HEAD (หรือสาขา หากมี) รายการนี้แสดงว่า Git ลงทะเบียนสำเนาแล้ว แต่ไม่ได้ยืนยันว่าเอเจนต์ทำงานเสร็จแล้ว หากต้องการตรวจสอบว่ามีไฟล์อยู่ ให้เปิดโฟลเดอร์ตามพาธที่แสดงในรายการแล้วตรวจดูเนื้อหา

## วิธีตรวจสอบผลลัพธ์และเก็บรักษางานของคุณ

เมื่องานที่สองในสำเนาใหม่เสร็จแล้ว คุณต้องบันทึกและโอนผลลัพธ์แยกต่างหาก คำสั่ง `--worktree` จะไม่รวมการเปลี่ยนแปลงเข้ากับสาขาหลักหรือโอนผลลัพธ์ให้อัตโนมัติ สำเนายังคงอยู่ในสถานะ detached HEAD ดังนั้นการคอมมิตภายในสำเนาเพียงอย่างเดียวไม่ได้สร้างสาขาใหม่ หากต้องการเก็บคอมมิตเหล่านั้นไว้ ให้ผูกคอมมิตเข้ากับสาขาหรือโอนไปยังโปรเจกต์หลักก่อนลบโฟลเดอร์ของสำเนา

อย่าลบโฟลเดอร์ของสำเนาจนกว่าจะเก็บรักษาผลลัพธ์ไว้แล้ว การตรวจสอบว่าโฟลเดอร์ทำงานสะอาดไม่ได้ทดแทนการเก็บคอมมิตที่คุณต้องการไว้ คอมมิตเหล่านั้นอาจยังไม่มีสาขาผูกอยู่

หากคุณทำงานในเครื่องมือหลายชนิดพร้อมกัน ให้วางแผนล่วงหน้าว่าจะป้องกันไม่ให้งานรบกวนกันอย่างไร อธิบายการทำงานร่วมกันของเอเจนต์สองตัวไว้ใน [ใช้ Claude Code และ Codex ร่วมกัน](https://ailoot.ai/blog/th/claude-code-codex-together/)

## หากการเริ่มทำงานถูกขัดจังหวะ: จะหาสำเนาได้ที่ไหน

การเริ่มทำงานด้วย `--worktree` อาจล้มเหลวได้จากหลายสาเหตุ:

- ยังไม่ได้เปิดใช้งานฟีเจอร์ไว้ก่อน และคำสั่งเริ่มทำงานไม่มี `--enable worktrees`: Codex จะปฏิเสธการเริ่มทำงานด้วยแฟล็ก `--worktree`;
- คุณอยู่ในโฟลเดอร์ผิด หรือไม่มีคอมมิต: หากโฟลเดอร์ปัจจุบันไม่ใช่รีโพซิทอรี Git หรือยังไม่มีคอมมิต ก็ไม่มีต้นทางให้สร้างสำเนา;
- โปรเจกต์ถูกระบุไว้อย่างชัดเจนว่าเป็นแหล่งที่ไม่น่าเชื่อถือ: Codex จะปฏิเสธการเริ่มเซสชันด้วย `--worktree` ก่อนอื่น ตรวจสอบว่าคุณเปิดโปรเจกต์ที่ถูกต้อง อย่าเปลี่ยนสถานะความน่าเชื่อถือโดยอัตโนมัติ

หากเซสชันไม่สามารถเชื่อมต่อกับสำเนาที่เพิ่งสร้างได้ เช่น กระบวนการถูกขัดจังหวะ โฟลเดอร์ทำงานจะไม่ถูกลบโดยอัตโนมัติ ขั้นแรกตรวจสอบรายการสำเนาสำหรับทำงาน และก่อนลบสิ่งใด ให้แน่ใจว่าไม่มีเซสชัน Codex CLI กำลังใช้สำเนานี้อยู่:

```bash
git worktree list
```

เปิดโฟลเดอร์และบันทึกการเปลี่ยนแปลงที่ต้องการก่อนลบ สำเนาอาจยังคงอยู่แม้เซสชันเอเจนต์เริ่มต้นไม่สำเร็จ หากสำเนายังอยู่ ไม่จำเป็นต้องใช้อีกต่อไป และแน่ใจว่าไม่มีเซสชันใดกำลังใช้งานอยู่ ให้ลบด้วยตนเองโดยใช้ `git worktree remove` จากรีโพซิทอรีต้นฉบับ พร้อมระบุพาธของโฟลเดอร์ อย่าเพิ่ม `--force`: หากสำเนามีไฟล์ที่ยังไม่ได้คอมมิตหรือไฟล์ที่ไม่ได้ติดตาม คำสั่งจะปฏิเสธการลบ หากคำสั่งปฏิเสธ ให้ตรวจดูเนื้อหาในโฟลเดอร์โดยไม่ปิดกลไกป้องกัน

เมื่ออัปเดต Codex CLI ให้ตรวจสอบ `codex --version` อีกครั้ง และตรวจสอบด้วย `git worktree list` ซ้ำ แฟล็กรุ่นทดลองอาจทำงานต่างกันระหว่างเวอร์ชัน





แหล่งข้อมูลและเครื่องมือเพิ่มเติม: [Ailoot](https://ailoot.ai/).

## คำถามที่พบบ่อย

### worktree ที่สองรวมไฟล์ยังไม่บันทึกหรือยังไม่ commit หรือไม่?

ไม่รวม ใน CLI รุ่นที่อธิบายเริ่มจาก HEAD ของ repository ต้นทาง การแก้ที่ยังไม่ commit และไฟล์ใหม่ยังอยู่โฟลเดอร์เดิม แค่บันทึกในเอดิเตอร์จึงไม่พอให้ย้ายไปด้วย

### detached worktree ที่สะอาดลบได้ปลอดภัยหรือไม่?

โฟลเดอร์สะอาดยังอาจมี commit ที่ไม่มี branch ตั้งชื่อ ต้องเก็บหรือย้าย commit ก่อน ตรวจว่าไม่มีเซสชันใช้อยู่ แล้วลบด้วย Git worktree ตามปกติโดยไม่บังคับข้ามการป้องกัน


## Ailoot · บริษัทและพอร์ตโฟลิโอโครงการของบริษัท

Ailoot อาศัยประสบการณ์การดำเนินงานที่สั่งสม ฐานลูกค้าขนาดใหญ่ บริการที่เสถียร และการติดตาม KPI อย่างต่อเนื่อง

บริษัทและพอร์ตโฟลิโอโครงการของบริษัท: ลูกค้าหลายล้านราย; ยอดขายระดับหลายพันล้านต่อเดือน.

Ailoot นำประสบการณ์การดำเนินงานนี้มาใช้เพื่อให้เข้าถึงฟังก์ชัน AI ผ่าน API ในผลิตภัณฑ์ของลูกค้า เอเจนต์ แอปพลิเคชัน และระบบอัตโนมัติ
