0

[Git Workflow] Tuyệt chiêu "bắt bài" Conflict trên Fork - Tuyệt đối không để sót file!

Chào anh em! Chắc hẳn ai cũng từng một lần "đứng hình" khi thấy hàng loạt file đỏ rực trong Fork sau khi thực hiện Merge. Nhiều anh em (kể cả mình hồi mới vào nghề) thường chỉ tập trung sửa các file xung đột (conflict) mà quên mất rằng: Git đã tự động gộp hàng chục file khác rồi!

Việc bỏ sót những file tự động gộp này chính là nguyên nhân dẫn đến việc mất code của đồng nghiệp hoặc làm hỏng hệ thống khi deploy. Hôm nay, hãy cùng mình đi qua quy trình 5 bước "bất bại" để xử lý conflict một cách chuẩn chỉ, đảm bảo an toàn tuyệt đối cho nhánh tính năng của bạn.

Quy trình 5 bước "Bất bại" khi xử lý Conflict

Bước 1: Chuẩn bị "chiến trường" (Sync develop)

Đừng bao giờ merge khi nhánh develop trên máy bạn là bản cũ.

  1. Chuyển sang nhánh develop: Checkout develop.
  2. Bấm Pull để tải toàn bộ code mới nhất từ server về. Hãy chắc chắn máy bạn đang nắm giữ "đầu não" của dự án.

Bước 2: Khai màn Merge

Chuyển về nhánh tính năng (feature/...):

  1. Click chuột phải vào nhánh develop -> Chọn Merge 'develop' into 'feature/...'.
  2. Nếu xảy ra xung đột, Fork sẽ báo động ngay lập tức. Những file đỏ rực ở vùng Local Changes chính là những nơi bạn cần can thiệp.

Bước 3: Sửa Conflict (The Mindset)

Mở Merge Tool của Fork, bạn sẽ thấy 3 cột:

  • Left (Mine): Code của bạn.
  • Right (Theirs): Code mới nhất từ nhánh develop.
  • Bottom (Result): Kết quả cuối cùng. Hành động: Chọn lựa hoặc gộp logic một cách tỉnh táo. Sau khi xong, nhấn Save và nhấn Resolve để đẩy file vào vùng Staged.

Bước 4: "Bẫy" file tự động gộp (Quan trọng nhất)

Lưu ý chí mạng: Đây chính là nơi 90% anh em mắc lỗi. Khi Merge, ngoài các file conflict, Git đã tự động gộp thành công rất nhiều file khác.

  • Hành động: Bạn PHẢI kiểm tra vùng Unstaged. Nếu thấy bất kỳ file nào (thậm chí không báo đỏ), hãy chọn tất cả và đẩy xuống vùng Staged.
  • Tại sao? Nếu bạn bỏ quên file ở Unstaged, khi Commit, bạn sẽ vô tình bỏ qua những cập nhật mới nhất của đồng nghiệp. Code của bạn sẽ bị "lệch pha" với nhánh develop.

Bước 5: Commit và Push an toàn

Khi vùng Unstaged đã trống trơn (chỉ còn lại các file nháp cá nhân không liên quan), bạn đã sẵn sàng:

  1. Viết Commit Message chuẩn chỉnh (ví dụ: fix(config): resolve conflict with develop).
  2. Bấm Commit.
  3. Bấm Push. Lúc này, dù số lượng commit có hiển thị bao nhiêu, hãy cứ tự tin vì bạn đã kiểm soát 100% tình hình.

"Phao cứu sinh" khi lỡ tay làm sai

Đừng quá lo lắng nếu thấy code "lỗi tung tóe". Git luôn cho bạn đường lui:

  1. Chưa bấm Commit: Click chuột phải vào quá trình merge đang dang dở (thường nằm trên cùng của lịch sử commit) -> Chọn Abort Merge. Mọi thứ sẽ trở về nguyên trạng như chưa từng có cuộc chia ly.
  2. Đã lỡ bấm Commit: Đừng hoảng! Tìm đến commit gần nhất của origin/feature/..., click chuột phải và chọn Reset to Here... ở chế độ Mixed. Nó sẽ giúp bạn tháo gỡ toàn bộ trạng thái commit vừa rồi và đưa file về lại vùng Unstaged để sửa lại từ đầu.

Tổng kết

Xử lý conflict không đáng sợ, cái đáng sợ là sự thiếu cẩn trọng khi gộp code. Hy vọng quy trình 5 bước này sẽ giúp anh em làm chủ hoàn toàn các xung đột Git và tự tin hơn khi phối hợp làm việc trong dự án.

Nếu thấy bài viết này hữu ích và giúp bạn "bắt bài" được Git, đừng quên để lại 1 upvote để mình có động lực chia sẻ thêm nhiều "bí kíp" thực chiến khác nhé! Chúc anh em code sạch, deploy mượt!


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í