Danh sách bài viết trong series Học Git cơ bản: làm chủ quản lý mã nguồn
- Bài 1: Khởi Đầu Với Git – Cài Đặt Và Cấu Hình Cơ Bản
- Bài 2: Khám Phá Kho Lưu Trữ – Tạo Và Khởi Động Repository
- Bài 3: Git Commit Như Siêu Nhân – Lưu Lại Mọi Thay Đổi
- Bài 4: Git history – Xem Lịch Sử Và Undo
- Bài 5: Git branch – Làm Việc Với Branch
- Bài 6: Git Remote – Kết Nối Với GitHub
- Bài 7: Hợp Tác Đỉnh Cao – Resolve Conflict Như Pro
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:
- Đảm bảo bạn đã đẩy repo
my-first-repo
lên GitHub (từ bài 6). - Mở
hello.txt
trên GitHub, sửa thành:Hello, Git! Edited online: Team A!
Commit và đẩy lên nhánh
master
. - 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
<<<<<<< HEAD
đến=======
: Phiên bản từmaster
(GitHub).=======
đến>>>>>>> feature-test
: Phiên bản từfeature-test
(local). Mình từng hoảng khi thấy “conflict”, nhưng hóa ra chỉ cần chọn hoặc kết hợp hai phiên bản!
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”
- Pull Trước Khi Làm: Luôn
git pull
trước khi sửa file. - Giao Tiếp Team: Thảo luận với đồng đội để tránh sửa cùng chỗ.
- Dùng Nhánh Riêng: Mỗi tính năng dùng nhánh riêng (VD:
feature-login
).
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
- Dùng Tool Hỗ Trợ: IDE như VSCode có giao diện giải quyết conflict dễ hơn.
- Kiểm Tra Log: Dùng
git log --graph
để xem lịch sử merge. - Backup: Sao lưu file trước khi merge nếu không chắc chắn.
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é! 🚀