Bước 1: Tạo Tình Huống Xung Đột – “Đặt Bẫy” Cho Git

Xung đột xảy ra khi hai người sửa cùng file trên nhánh khác nhau rồi merge. Hãy thử tạo tình huống:

  1. Đảm bảo bạn đã đẩy repo my-first-repo lên GitHub (từ bài 6).
  2. Mở hello.txt trên GitHub, sửa thành:
    Hello, Git!
    Edited online: Team A!

    Commit và đẩy lên nhánh master.

  3. Trên local, checkout nhánh feature-test (tạo nếu chưa có):
    git checkout -b feature-test

    Sửa hello.txt thành:

    echo "Edited locally: Team B!" >> hello.txt
    git add hello.txt
    git commit -m "Add Team B edit"

Bây giờ, cả hai phiên bản (online và local) sửa cùng dòng – chuẩn bị cho xung đột!

Bước 2: Merge Và Gặp Xung Đột – “Đối Mặt Thử Thách”

Quay lại nhánh master và merge feature-test:

git checkout master
git pull origin master  # Kéo thay đổi từ GitHub
git merge feature-test

Git sẽ báo lỗi:

Auto-merging hello.txt
CONFLICT (content): Merge conflict in hello.txt
Automatic merge failed; fix conflicts and then commit the result.

Mở hello.txt, bạn sẽ thấy:

Hello, Git!
<<<<<<< HEAD
Edited online: Team A!
=======
Edited locally: Team B!
>>>>>>> feature-test

Bước 3: Giải Quyết Xung Đột – “Hòa Giải Như Pro”

Chỉnh sửa hello.txt để kết hợp cả hai:

Hello, Git!
Edited online: Team A!
Edited locally: Team B!

Lưu file, đánh dấu xung đột đã giải quyết:

git add hello.txt
git commit

Git sẽ tự tạo message merge, kiểu:

Merge branch 'feature-test'

Kiểm tra trạng thái:

git status

Nếu không còn gì trong “Changes to be committed”, bạn đã thắng! Đẩy lên GitHub:

git push origin master

Mình từng quên git add sau khi sửa, merge bị lỗi – từ đó luôn kiểm tra kỹ!

Bước 4: Tránh Xung Đột – “Lái Xe An Toàn”

Mình từng không pull, làm xung đột với team – mất cả buổi giải quyết. Từ đó, luôn “lái xe an toàn”!

Mẹo Nhỏ Để Thành Công

Thử Ngay

Tạo nhánh feature-conflict, sửa hello.txt thêm “Team C edit!”, commit. Rồi sửa cùng dòng trên GitHub, merge local để tạo xung đột, và giải quyết nó. Kiểm tra trên GitHub và nhắn mình nếu bạn muốn chia sẻ nhé!

Lời Kết Cho Series

Chúc mừng bạn đã hoàn thành series Học Git Cơ Bản! Từ cài đặt (bài 1), tạo repo (bài 2), commit (bài 3), undo (bài 4), nhánh (bài 5), đẩy lên GitHub (bài 6), đến xử lý xung đột (bài 7), bạn đã làm chủ Git cơ bản. Đây là nền tảng vững chắc để bạn hợp tác với team và quản lý code như pro. Nếu muốn học sâu hơn (VD: rebase, cherry-pick), cứ bảo mình – mình sẵn sàng mở series mới! Cảm ơn bạn đã đồng hành – chúc bạn “code mượt” nhé! 🚀

Điều hướng chuỗi bài viết<< Bài 6: Git Remote – Kết Nối Với GitHub
Theo dõi
Thông báo của
0 Góp ý
Được bỏ phiếu nhiều nhất
Mới nhất Cũ nhất
Phản hồi nội tuyến
Xem tất cả bình luận