bảng thuật ngữ

tách riêng worktree là gì?

TL;DR

Cô lập bằng worktree nghĩa là mỗi AI agent có bản sao code riêng, trên branch riêng, trong thư mục riêng. Nhờ đó các agent có thể sửa cùng các tệp cùng lúc mà không ghi đè lên nhau. Checkout chính của bạn không bị đụng đến cho đến khi bạn merge. Pane tự động thiết lập điều này cho mọi pane.

Cô lập bằng worktree nghĩa là mỗi AI agent làm việc trên bản sao code riêng, trên branch riêng, trong thư mục riêng. Nhờ đó nhiều agent có thể sửa cùng các tệp cùng lúc mà không ghi đè lên nhau, và checkout chính của bạn không bị đụng đến cho đến khi bạn merge.

vấn đề

Các agent dùng chung một thư mục sớm muộn sẽ ghi đè lên nhau.

Bạn nhờ agent A viết lại trang đăng nhập và agent B thêm luồng đăng ký. Cả hai đều cần sửa auth.ts. Trong một thư mục dùng chung, agent B lưu phiên bản của nó và lặng lẽ thay thế các chỉnh sửa của agent A. Không agent nào nhận ra, và bạn chỉ phát hiện sau đó.

Vì vậy để nhiều agent trong một thư mục là một canh bạc. Mọi thứ ổn cho đến khi hai agent cùng đụng vào một tệp, rồi công sức của ai đó bị mất.

cách sửa

Mỗi agent một worktree: tệp và branch riêng, cùng lịch sử.

Cho mỗi agent một git worktree riêng: một thư mục riêng với branch riêng, dùng chung lịch sử. Agent A làm ở một worktree, agent B ở worktree khác, và cả hai đều sửa được auth.ts vì chúng sửa các bản sao khác nhau.

my-project/                 ← main branch, untouched
my-project/worktrees/
  ├─ login-rewrite/         ← agent A, branch login-rewrite
  └─ signup-flow/           ← agent B, branch signup-flow

những gì được tách riêng

Tệp, branch và shell tách biệt. Lịch sử, remote và git object dùng chung.

tách riêngdùng chung
Tệp và thay đổi chưa commitLịch sử git và commit
BranchRemote (origin)
Trạng thái shell và biến môi trườngCấu hình git
Thư mục làm việcKho object (tiết kiệm dung lượng)

pane làm việc này thế nào

Pane tự động thiết lập và dọn dẹp worktree cho mọi pane.

Khi bạn tạo pane, Pane giao cho nó một worktree đã chuẩn bị sẵn, tạo branch mới, sao chép tệp .env, thiết lập agent và node_modules vào, rồi khởi chạy agent ở đó. Khi bạn lưu trữ pane, Pane kiểm tra công việc chưa lưu rồi xóa worktree. Bạn không bao giờ phải tự gõ git worktree add.

những gì cô lập không bao quát

Worktree giữ tệp của các agent tách biệt. Nó không sandbox những gì agent có thể làm.

Worktree là một thư mục, không phải sandbox. Agent vẫn chạy với quyền của người dùng của bạn, nên một agent có thể đọc tệp của worktree khác qua đường dẫn, truy cập mạng hoặc thay đổi thứ nằm ngoài repo. Thực tế agent thường ở trong thư mục làm việc của mình, nhưng nếu bạn cần giới hạn cứng, hãy chạy chúng trong container hoặc VM.

Một số thứ được dùng chung bên ngoài git: database ứng dụng của bạn dùng, cổng dev server, cache package toàn cục. Pane cấp cho mỗi pane một dải cổng riêng trong PANE_PORT; với database, hãy dùng setup script hoặc công cụ tạo một database cho mỗi worktree.

Nguồn

Đính chính
Nếu có gì ở đây sai hoặc đã cũ, hãy báo cho chúng tôi, chúng tôi sẽ sửa và cập nhật ngày ở đầu trang. Mở issue trên GitHub
Nguồn

câu hỏi thường gặp

hoặc
Tải xuống*
Cảnh báo Windows SmartScreenBản tải trực tiếp có thể hiện cảnh báo SmartScreen khi Pane chưa được ký. Pane hoàn toàn mã nguồn mở. Bạn có thể tự kiểm tra code và build từ mã nguồn.1. Bấm Thông tin khác2. Bấm Vẫn chạy3. Tiếp tục cài đặtCài qua PowerShell tải thẳng bản phát hành chính thức và tránh hầu hết vướng mắc khi tải bằng trình duyệt.cài global qua npm
Dán lệnh đó vào PowerShell.Linux

Bởi Parsa Khazaeepoul, đồng sáng lập Pane. .