Tạo phiên và hợp tác Git
Hai tính năng đi thành cặp: tách nhiệm vụ con thành các phiên con độc lập (có thể kèm worktree git riêng), và hợp nhất bằng giao diện đồ họa để gộp các nhánh làm việc song song trở lại. Kết hợp với nhau, hai tính năng này cho phép nhiều tác nhân cùng làm việc song song trên một kho mã.
1. Tạo phiên con là gì
Từ bên trong bất kỳ phiên nào, bạn đều có thể tách ra một nhiệm vụ con. VelaTerm tạo một phiên con mới bên dưới nút hiện tại (cây trở thành dạng phân cấp: cha → con → cháu), có thể cấp cho phiên đó một worktree git riêng, và gửi mô tả nhiệm vụ làm tin nhắn đầu tiên của phiên mới. Tác nhân mới bắt đầu làm việc ngay khi khởi chạy, không cần giải thích thêm.
Kết quả là một phiên thực sự trong cây, có tiến trình riêng, mà bạn có thể theo dõi, trả lời, mở lại và tiếp tục bất cứ lúc nào. Đây không phải một tác vụ chạy ngầm bị ẩn đi.
Với những công việc cần được các tác nhân riêng biệt lập kế hoạch, thực hiện và nghiệm thu, hãy dùng quy trình lập kế hoạch và thực hiện; xem Lập kế hoạch và thực hiện.
2. Các cách tạo phiên con
| Cách gọi | Người dùng | Worktree |
|---|---|---|
Lệnh vspawn "task" | Bạn hoặc một script, trong bất kỳ phiên nào | Mặc định tắt; --worktree để bật |
Lệnh vspawn-tree "task" | Như trên | Luôn bật |
/vspawn task trong Claude Code, $vspawn task trong Codex | Bạn yêu cầu tác nhân; tác nhân sẽ mở rộng nhiệm vụ thành một lời nhắc đầy đủ trước | Mặc định tắt |
/vspawn-tree task trong Claude Code, $vspawn-tree task trong Codex | Như trên | Luôn bật |
Hai lệnh này có sẵn trong mọi phiên do VelaTerm khởi động. Các kỹ năng của tác nhân cần có Kỹ năng Vela: chọn “Cài đặt” trong Cài đặt ▸ Chung, sau đó bắt đầu một cuộc hội thoại Claude Code hoặc Codex mới để tác nhân nhận các kỹ năng này. Tác nhân chỉ gọi các kỹ năng này khi bạn yêu cầu.
Phiên mới không nhìn thấy cuộc hội thoại đã tạo ra phiên đó. Khi bạn dùng kỹ năng, tác nhân sẽ ghi vào nhiệm vụ mục tiêu, các tệp liên quan, những kết luận đã có, các ràng buộc và tiêu chí nghiệm thu. Khi bạn tự chạy lệnh, hãy đưa những thông tin này vào nội dung nhiệm vụ.
3. Thư mục, tác nhân và mô hình
- Thư mục. Phiên con khởi động trong thư mục nơi lệnh được chạy, đây cũng là kho mã được dùng để tạo worktree. Truyền
--cwd <path>để dùng một dự án khác, ví dụvspawn-tree --cwd /work/project "fix the parser". Điều này quan trọng khi làm việc trong một bộ sưu tập, vốn không có thư mục dự án riêng. Các kỹ năng sẽ thêm--cwdkhi cuộc hội thoại xác định rõ một kho mã. - Tác nhân. Phiên con dùng cùng tác nhân với phiên hiện tại; một terminal thông thường sẽ tạo phiên Claude Code.
--claude,--codex,--copilothoặc--kirochọn tác nhân khác, và thẻ xác nhận cho phép chọn mọi loại tác nhân. - Mô hình và mức suy luận.
--model <name>và--effort <level>đặt mô hình và mức suy luận cho phiên con, ví dụvspawn --model opus --effort high "port the parser". Tên mô hình phải thuộc về tác nhân sẽ chạy phiên. Thiết lập mà tác nhân không hỗ trợ sẽ bị từ chối trước khi phiên được tạo. Khi không có các tùy chọn này, phiên con cùng loại tác nhân kế thừa đối số khởi chạy và thiết lập quyền của phiên cha; phiên con thuộc loại khác dùng giá trị mặc định của tác nhân đó trong Cài đặt ▸ Tác nhân. - Chế độ hiển thị. Phiên con hỗ trợ chế độ hội thoại sẽ mở trong cùng chế độ với phiên cha nếu phiên cha cũng hỗ trợ chế độ này; nếu không, phiên con mở trong chế độ mặc định của tác nhân.
Toàn bộ tùy chọn được liệt kê trong Lệnh trong phiên §3.
4. Xác nhận trước khi tạo phiên
Theo mặc định, mọi yêu cầu tạo phiên con đều hiển thị trước một thẻ xác nhận với tiêu đề “Khởi chạy phiên con”. Thẻ này không lấy tiêu điểm khỏi phiên bạn đang làm việc, và một thông báo hệ thống (“Phiên con đang chờ xác nhận”) cho bạn biết thẻ đang chờ.
- Thẻ hiển thị phiên gửi yêu cầu cùng thư mục của phiên đó (“Phiên yêu cầu”), “Hướng dẫn nhiệm vụ” sẽ trở thành tin nhắn đầu tiên của phiên con, “Cài đặt chạy” (“Loại phiên”, “Mô hình”, “Mức suy luận”), và lựa chọn “Thư mục làm việc”: “Thư mục hiện tại” hoặc “Worktree riêng”.
- Danh sách mô hình gợi ý lấy từ tác nhân được chọn. Nếu không có danh sách, bạn có thể nhập mã định danh mô hình. Để một trường ở “Mặc định của tác nhân” nghĩa là dùng thiết lập riêng của tác nhân.
- Terminal thông thường mở trong thư mục làm việc và không thực hiện hướng dẫn nhiệm vụ.
- “Khởi chạy phiên” (hoặc ⌘Enter / Ctrl+Enter) khởi động phiên con; “Hủy” bỏ qua yêu cầu. Các yêu cầu tiếp theo được xếp hàng chờ, và thẻ cho biết còn bao nhiêu yêu cầu (“Còn N yêu cầu cần xem xét”).
Để khởi động các yêu cầu mà không qua thẻ xác nhận, hãy tắt “Xác nhận trước khi tạo phiên” trong Cài đặt ▸ Hành vi, hoặc thêm --yes vào từng lệnh.
5. Worktree: làm việc song song mà không xung đột
Khi dùng worktree, phiên con làm việc trên một nhánh mới trong thư mục riêng, tách biệt với không gian làm việc chính và với các phiên con khác. Đây là cách thiết lập được khuyến nghị khi nhiều tác nhân cùng lúc thay đổi một kho mã. Worktree mới được tạo từ commit hiện tại và không bao gồm các thay đổi chưa commit. Nếu không tạo được worktree cho một phiên con, phiên đó sẽ dùng thư mục ban đầu.
Phiên làm việc trong worktree có một huy hiệu nhỏ trên biểu tượng ở thanh bên; di chuột lên huy hiệu để xem tên và đường dẫn của worktree.
Các cách khác để làm việc với worktree:
- “Phiên worktree mới…” trong menu của dự án, nhóm hoặc phiên mở hộp thoại tạo phiên với tùy chọn “Worktree” đặt sẵn là “Mới”. Nhập “Tên worktree”, tên này được dùng cho cả thư mục và nhánh. Hộp thoại cũng có thể gắn phiên vào một worktree “Có sẵn”, hoặc chọn “Không”.
- “Chuyển sang worktree…” trong menu của nhóm gắn nhóm với một worktree mới hoặc có sẵn. Các phiên được tạo trong nhóm từ đó về sau sẽ dùng worktree này; các phiên đã có trong nhóm giữ nguyên thư mục. Nhóm có worktree còn có thêm mục “Thông tin nhóm”.
Menu con Git của một phiên hoặc nhóm có thư mục là kho git gồm:
| Mục | Chức năng |
|---|---|
| “Xem thay đổi…” | Hiển thị các thay đổi trong cây làm việc cùng danh sách tệp và phần so sánh khác biệt |
| “Hợp nhất…” | Mở hộp thoại hợp nhất (§6) |
| “Sao chép đường dẫn worktree”, “Mở thư mục worktree” | Có ở các phiên và nhóm được gắn với worktree |
| “Xóa worktree…” | Chọn một worktree của kho mã này và xóa thư mục của worktree đó khỏi ổ đĩa; “Buộc xóa (hủy thay đổi chưa commit)” xóa worktree ngay cả khi còn thay đổi chưa commit |
Sau khi worktree được gắn đã bị xóa, menu của phiên hoặc nhóm có “Chuyển thành phiên thường” hoặc “Chuyển thành nhóm thường”, thao tác này gỡ liên kết để phiên lại khởi động trong thư mục dự án.
Khi bạn xóa một phiên có worktree trong nhánh cây con của phiên đó, hộp thoại xác nhận sẽ đề nghị xóa luôn các worktree đó.
6. Hợp nhất: hợp nhất Git bằng giao diện đồ họa
Khi công việc đã xong, hãy hợp nhất. Với bất kỳ phiên hoặc nhóm nào có thư mục là kho git, dù có worktree hay không, hãy chọn “Git ▸ Hợp nhất…” để mở hộp thoại “Hợp nhất nhánh”:
- Chọn hai nhánh. Chọn “Nhánh nguồn” và “Nhánh đích”; “Đảo hướng” hoán đổi hai nhánh. Cùng một hộp thoại có thể hợp nhất nhánh của phiên con trở lại nhánh chính, hoặc đưa nhánh chính vào phiên con để cập nhật.
- Trước khi bạn xác nhận, hộp thoại liệt kê những thay đổi mà việc hợp nhất sẽ đưa vào nhánh đích.
- Việc hợp nhất chạy trong cây làm việc nơi nhánh đích đang được checkout. Nếu nhánh đích chưa được checkout ở đâu, không thể hợp nhất; hãy checkout nhánh đó trước.
- Nếu cây làm việc của nhánh nguồn có thay đổi chưa commit, các thay đổi này được commit trước với nội dung commit bạn nhập (“Commit và hợp nhất”).
- Nếu việc hợp nhất có xung đột, VelaTerm giữ nguyên các xung đột và cho bạn biết cần giải quyết ở đâu. Hãy giải quyết xung đột trong terminal của worktree đó (hoặc nhờ một tác nhân làm việc này), rồi commit.
Việc hợp nhất không xóa worktree. Khi không còn cần đến worktree, hãy xóa bằng “Git ▸ Xóa worktree…”.
7. Một quy trình làm việc điển hình
- Trong phiên chính, trao đổi nhiệm vụ với Claude Code, rồi chạy
/vspawn-tree refactor the checkout module(cần có Kỹ năng Vela). - Xem lại nhiệm vụ trên thẻ xác nhận rồi chọn “Khởi chạy phiên”. Phiên con khởi động trong worktree riêng và xuất hiện ở thanh bên, bên dưới phiên cha, với chấm trạng thái màu xanh lá khi đang làm việc.
- Tiếp tục làm việc trong phiên chính. Khi phiên con có câu hỏi hoặc đã xong, chấm trạng thái của phiên con đổi màu và một thông báo xuất hiện.
- Xem lại kết quả của phiên con, rồi chọn “Git ▸ Hợp nhất…” để hợp nhất nhánh của phiên con vào nhánh chính.
- Xóa worktree bằng “Git ▸ Xóa worktree…”, rồi lưu trữ phiên con để giữ lại bản ghi.