Bỏ qua để đến nội dung

Commit & push từ Orca

Bài viết được dịch tự động từ bài viết gốc, chưa được kiểm tra lại bởi con người. Chỉ những bài viết có dấu tick xanh cạnh tiêu đề là đã được kiểm tra.

Bạn có thể commit, push, và mở review mà không cần rời khỏi Orca. Panel commit nằm cạnh diff viewer, được thiết kế cho trường hợp thường gặp nhất - review, stage, commit, push, rồi tiếp tục.

  • Stage thay đổi theo hunk hoặc theo file ngay từ diff.
  • Viết commit message trong panel dưới cùng, hoặc dùng Generate with AI khi muốn Orca tự soạn từ các thay đổi đã staged.
  • Bấm Commit (Cmd-Enter trên macOS, Ctrl-Enter trên Windows / Linux) khi focus đang ở Source Control và action chính là Commit.

Pre-commit hook của repo chạy như bình thường. Nếu một hook fail, Orca hiển thị output ngay inline.

Khi commit thất bại, dùng Fix with AI từ chi tiết lỗi để khởi động agent mặc định trong worktree đang active kèm output của hook, commit message đã thử, và danh sách file đã staged. Agent chỉ nhận một prompt sửa lỗi - không được yêu cầu bypass hook, commit, push, hay mở review.

Push đẩy branch của worktree lên origin, đặt upstream ở lần đầu. Nếu branch đang bị behind, Orca sẽ không âm thầm force-push.

Khi bạn đã viết lại lịch sử (rebase, amend, squash) và remote chỉ còn bản cũ của các commit local, panel Source Control hiện Force push with lease như một action riêng, tường minh - không bao giờ dùng như fallback cho Push thường. Nhãn hiển thị số commit sẽ bị thay thế và tên branch upstream để bạn biết chính xác điều gì sắp thay đổi. Force push dùng --force-with-lease, nên nếu view local của remote đã lỗi thời, push sẽ bị hủy thay vì ghi đè lên commit của người khác.

Sau khi branch đã được push, dùng action hosted review trong panel Source Control để tạo pull request hoặc merge request. Xác nhận base branch, title, description, và trạng thái draft trước khi submit. Bitbucket Cloud có thể tạo pull request từ cùng composer; nó không có draft PR nên toggle Draft sẽ bị ẩn. Với GitHub, khi base đã chọn có sẵn một PR đang mở, bạn có thể Stack this PR above #N - xem Stacked pull requests.

Nếu Orca cần chạy một commit tiếp theo như một phần của luồng Create PR và commit đó thất bại - hook từ chối, hoặc working tree ở trạng thái không thể commit - dialog sẽ hiện một tóm tắt lỗi chi tiết kèm output của hook và nút hành động tiếp theo, thay vì đưa bạn quay lại panel mà không có context gì. Dùng Fix with AI từ tóm tắt đó để giao lỗi cho agent, hoặc tự xử lý rồi chạy lại.

Dùng Generate pull request details with AI trong dialog tạo review khi muốn Orca soạn title, description, và trạng thái draft từ diff và commit của branch. Nội dung được sinh ra hướng tới các đoạn problem/solution ngắn gọn kiểu ELI5 và hướng dẫn liên kết issue (Fixes so với Refs khi có gắn GitHub issue). Orca giữ nguyên base branch bạn đã chọn, từ chối description rỗng, và hiện lỗi rõ ràng để bạn thử lại thay vì ship một body trống. Kiểm tra lại các trường trước khi tạo review.

Generate with AI, Generate pull request details with AI, Fix with AI, và Resolve with AI đều là các action AI của Source Control - mỗi cái được hậu thuẫn bởi một action recipe quyết định agent, tham số CLI, và template prompt Orca chạy khi bạn kích hoạt action đó. Sửa chúng ở Settings → Git & Source Control → Action recipes, hoặc làm mặc định toàn cục, hoặc giới hạn theo repo hiện tại.

Template có thể dùng các biến như {basePrompt}, {branch}, {stagedFiles}, {stagedPatch}, và {linkedIssue} cho commit message; PR details còn hỗ trợ {baseBranch}, {currentTitle}, {currentBody}, {commitSummary}, {changedFiles}, và {patch}.

{linkedIssue} mở rộng thành số GitHub issue đã liên kết với workspace, hoặc rỗng nếu không có issue nào (kể cả workspace thuần Linear/GitLab). Nên dùng cách diễn đạt mang tính hướng dẫn - một câu Fixes #{linkedIssue} trần sẽ thành Fixes # khi chưa liên kết.

Khi một repo có recipe riêng cho một action, việc lưu thay đổi ở mặc định toàn cục sẽ không đụng tới nó - panel settings hiện ghi chú Repository overrides liệt kê repo nào đang khác biệt và override cái gì (agent, tham số CLI, hay command template), kèm link Review nhảy tới settings của repo đó để bạn cập nhật hoặc xóa override.

Amend là hành động tường minh - Commit → Amend. Orca sẽ không amend các commit đã được push trừ khi bạn xác nhận.

Panel Source Control trên sidebar cho phép làm mọi thứ trên mà không cần rời view hiện tại: stage và discard file, viết commit message, và chạy Commit, Push, Pull, hoặc Sync chỉ với một click. Đường dẫn render đúng UTF-8 kể cả khi chứa ký tự non-ASCII.

Dòng context branch ở đầu panel hiện branch hiện tại (hoặc detached HEAD) xếp trên base so sánh (branch → base) để action Create PR và các action remote không bao giờ che mất branch bạn đang ở. Khi branch có merge base hợp lệ, một chip gọn hiện tổng số dòng thêm và xóa so với điểm fork đó (một diff theo range, không phải tổng của vùng staged/unstaged). Hover chip để xem Code breakdown khi host publish phân loại: Source, Tests, và Generated (Generated chỉ hiện khi khác 0) - chỉ dựa trên heuristic đường dẫn, không phân tích nội dung. Tên branch dài sẽ bị cắt bớt để không che mất chip.

Right-click một file đã thay đổi để Copy Path / Copy Relative Path (tương đối so với gốc worktree).

Nút chính ở dưới cùng panel thay đổi theo trạng thái để action hữu ích tiếp theo luôn chỉ cách một click: Stage Files khi có thay đổi chưa staged, rồi tới Commit, rồi tới Push / Pull / Sync tuỳ theo branch đang ở trạng thái nào so với upstream.

Khi một merge, rebase, cherry-pick, hoặc revert để lại conflict, Source Control hiện Resolve with AI cạnh Review conflicts để bạn giao bộ conflict cho agent hoặc tự kiểm tra trước khi tiếp tục. Với một merge hoặc rebase đang dở mà bạn không muốn tiếp tục nữa, dùng Abort merge hoặc Abort rebase từ Source Control.