0

[Series Làm Chủ Fork Git] Bài 2: Daily Workflow Nâng Cao – Làm Chủ Branch, Stash Và Khắc Phục Conflict Không Đau Đầu

Chào các bạn, chào mừng trở lại với series làm chủ Fork. Ở Bài 1, chúng ta đã cùng nhau "giải phẫu" giao diện và làm quen với tính năng Stage Lines cực đỉnh của Fork.

Hôm nay, chúng ta sẽ bước vào những trận chiến thực tế hơn. Trong quy trình làm việc hàng ngày (Daily Workflow), việc chuyển đổi qua lại giữa các task, tạo nhánh mới, hay đối mặt với những pha Merge Conflict (Xung đột mã nguồn) từ trên trời rơi xuống là điều không thể tránh khỏi.

Hãy cùng mình xem Fork biến những tác vụ "khó nhằn" này thành những cú click chuột mượt mà như thế nào nhé!

1. Quản Lý Nhánh (Branching) Tốc Độ Cao

Thay vì gõ git checkout -b feature/login rồi git push -u origin feature/login Fork cho phép bạn thao tác chỉ trong vài giây với độ trực quan tuyệt đối.

Tạo và Chuyển Nhánh (Checkout)

  • Cách 1: Nhấn tổ hợp phím Ctrl + B (Windows) hoặc Cmd + B (macOS). Một pop-up hiện ra, bạn chỉ cần điền tên nhánh mới và chọn nhánh gốc (Base branch).
  • Cách 2: Ở khu vực Commit Graph, bạn muốn tạo nhánh từ bất kỳ commit nào trong quá khứ? Chỉ cần chuột phải vào commit đó -> Chọn Create New Branch....
  • Chuyển nhánh: Tại Sidebar bên trái, bạn chỉ cần Double-click vào tên nhánh muốn chuyển tới. Fork sẽ tự động checkout chỉ trong nháy mắt.

Track nhánh Remote thông minh

Khi đồng nghiệp tạo một nhánh mới trên GitHub/GitLab, bạn chỉ cần nhấn Fetch. Nhánh đó sẽ xuất hiện trong mục Remotes ở Sidebar. Để kéo nó về máy làm việc, bạn chỉ cần chuột phải vào nhánh đó và chọn Checkout. Fork sẽ tự động thiết lập tracking nối giữa nhánh Local và Remote cho bạn.

2. Nghệ Thuật Sử Dụng "Stash" (Lưu trữ tạm thời)

Tình huống: Bạn đang code dở tính năng Feature/A (sửa khoảng 5 file, chưa test xong). Đột nhiên sếp báo có bug chí mạng ở nhánh main cần fix gấp. Bạn không thể commit đống code dang dở này được.

Giải pháp chính là Stash (cất code đi, lát lấy ra sau). Trong Fork, tính năng này được nâng tầm với sự trực quan:

Stash toàn bộ hoặc Stash có chọn lọc (Partial Stash)

Nhấn vào nút Stash trên thanh công cụ (hoặc Ctrl + S / Cmd + S). Fork cho phép bạn đặt tên cho bản Stash đó (ví dụ: “code dở feature A ngày 17/6”). Việc đặt tên này cực kỳ quan trọng để sau này bạn không bị nhầm lẫn giữa một rổ Stash. Đặc biệt: Bạn không nhất thiết phải cất hết! Bạn có thể chọn vài file ở mục Local Changes, chuột phải và chọn Stash Selected Files. Chỉ những file đó bị cất đi, phần còn lại vẫn giữ nguyên.

Xem trước và Pop Stash

Ở Sidebar, mục Stashes sẽ hiển thị danh sách các bản bạn đã cất.

Khi click vào một bản Stash, Fork sẽ hiển thị Diff chi tiết bạn đã sửa những gì trong đó (Git CLI không xem trực quan thế này được đâu!). Sau khi fix xong bug ở main, bạn quay lại nhánh cũ, chuột phải vào bản Stash và chọn:

  • Apply: Lấy code ra và vẫn giữ lại bản sao trong danh sách Stash.
  • Pop: Lấy code ra và xóa luôn bản Stash đó đi cho sạch nhà.

3. Resolve Conflict – Giải Quyết Xung Đột Không Còn Là Cơn Ác Mộng

Conflict xảy ra khi bạn và đồng nghiệp cùng sửa chung một dòng code trên một file, và Git không biết nên giữ lại code của ai khi Merge hoặc Pull. Nhìn đống dấu <<<<<<< HEAD, =======, >>>>>>> trên Terminal rất dễ hoa mắt.

Fork sở hữu một Merge Tool tích hợp thuộc hàng top hiện nay. Khi xảy ra Conflict trong quá trình Merge/Pull, Fork sẽ đánh dấu file đó bằng một biểu tượng màu vàng cảnh báo.

Các bước xử lý Conflict "bất bại" trên Fork:

  1. Click vào file bị conflict ở mục Local Changes.
  2. Nhấn vào nút Merge (hoặc Resolve) to đùng xuất hiện ở khung bên phải. Giao diện Merge Tool sẽ hiện ra chia làm 3 cột trực quan:
  • Cột Trái (Local/Mine): Code hiện tại đang có ở máy của bạn.
  • Cột Phải (Remote/Theirs): Code mới được kéo từ trên Server hoặc nhánh khác về.
  • Cột Giữa (Result): Kết quả cuối cùng sau khi bạn hòa giải.
  1. Hành động:
  • Nếu muốn lấy code của mình: Tích chọn mũi tên hướng vào dòng code bên Trái.
  • Nếu muốn lấy code của đồng nghiệp: Tích chọn mũi tên hướng vào dòng code bên Phải.
  • Nếu muốn giữ cả hai: Tích chọn cả hai bên.
  • Nếu muốn tự custom lại: Bạn có thể gõ trực tiếp code vào ô Result ở giữa.
  1. Sau khi giải quyết xong tất cả các dòng conflict, nhấn Save hoặc Accept. Fork sẽ tự động đánh dấu file đó là Resolved và đưa vào mục Staged, bạn chỉ việc nhấn Commit để hoàn tất trận chiến.

4. Mẹo nhỏ: Thay đổi Commit Message gần nhất (Amend)

Đã bao giờ bạn vừa bấm nút Commit xong thì phát hiện ra mình viết sai chính tả, hoặc quên chưa thêm một dòng code nhỏ xíu vào commit đó chưa?

Thay vì phải chạy lệnh git commit --amend, trong Fork bạn chỉ cần:

  1. Stage phần code sửa đổi thêm (nếu có).
  2. Ở khung Commit, tích vào ô Amend (nằm ngay cạnh nút Commit).
  3. Fork sẽ tự động load lại nội dung Message của commit gần nhất. Bạn chỉnh sửa lại tùy ý rồi bấm Amend Last Commit. Xong! Commit cũ đã được thay thế một cách hoàn hảo.

Tạm kết Bài 2

Qua bài học này, bạn đã có thể tự tin xử lý mọi tác vụ Git hàng ngày một cách mượt mà và chuyên nghiệp nhất với Fork. Không còn sợ mất code khi chuyển task, không còn hoang mang mỗi khi thấy thông báo Conflict.

Ở Bài 3, chúng ta sẽ bước lên một đẳng cấp khác: Làm chủ các tính năng nâng cao (Advanced Features). Chúng ta sẽ nói về Interactive Rebase (gộp, xóa, sửa lịch sử commit bằng cách kéo thả), Cherry-pick, và cách Revert code an toàn khi hệ thống gặp lỗi.

Hãy nhấn Upvote và để lại bình luận nếu bạn thấy bài viết này giúp ích cho workflow hàng ngày của bạn nhé!


All rights reserved

Viblo
Hãy đăng ký một tài khoản Viblo để nhận được nhiều bài viết thú vị hơn.
Đăng kí