Làm việc nhóm với Git & GitHub

1. Các khái niệm cần biết

Khái niệmGiải thích ngắn gọn
CloneTải repo từ GitHub về máy
BranchTạo nhánh riêng để phát triển song song
Pull Request (PR)Đề xuất hợp nhất thay đổi từ nhánh phụ vào nhánh chính
ForkSao chép repo người khác về tài khoản của bạn (dự án mã nguồn mở)
MergeHợp nhất thay đổi từ 1 nhánh vào nhánh khác
ConflictMâu thuẫn khi 2 người sửa cùng 1 chỗ trong file

2. Clone một repo từ GitHub

git clone https://github.com/username/repo-name.git

Hoặc dùng SSH:

git clone [email protected]:username/repo-name.git

3. Tạo và làm việc trên nhánh (branch)

git checkout -b ten-nhanh

Ví dụ:

git checkout -b login-feature

Làm việc, chỉnh sửa, commit như bình thường trên nhánh này.


4. Đẩy nhánh lên GitHub

git push -u origin ten-nhanh

5. Tạo Pull Request (PR)

  1. Vào repo trên GitHub
  2. Sẽ thấy gợi ý "Compare & Pull Request" → nhấn vào
  3. Điền tiêu đề và mô tả
  4. Nhấn Create pull request

Khi nào cần PR?

  • Khi bạn muốn hợp nhất code mình viết vào nhánh chính (main hoặc develop)
  • Được review trước khi merge (code review)

6. Hợp nhất Pull Request

Ai có quyền (hoặc chính bạn) có thể:

  • Review code
  • Nhấn Merge pull request
  • Xoá nhánh nếu không cần nữa

7. Kéo code mới nhất từ nhóm về

git pull origin main

Hoặc nếu bạn đang ở nhánh khác:

git checkout main
git pull origin main

8. Xử lý xung đột (conflict)

Khi hai người sửa cùng một dòng, Git không biết chọn cái nào → conflict.

Ví dụ:

<<<<<<< HEAD
console.log("A sửa");
=======
console.log("B sửa");
>>>>>>> ten-nhanh

Bạn cần sửa lại thành phiên bản đúng nhất, rồi:

git add <file>
git commit

9. Quy trình nhóm chuẩn (Git Flow cơ bản)

1. git checkout main
2. git pull origin main
3. git checkout -b feature-x
4. code + commit
5. git push origin feature-x
6. tạo pull request → review → merge

10. Tips khi làm việc nhóm

  • Luôn cập nhật nhánh chính trước khi tạo nhánh mới (git pull)
  • Commit rõ ràng: git commit -m "Thêm chức năng tìm kiếm"
  • Tạo nhánh mới cho mỗi tính năng, không code trên main
  • PR nhỏ, dễ review
  • Merge sau khi đã pull lại code mới để tránh conflict

✅ Đến đây, bạn đã:

  • Biết cách clone, branch, pull request, merge
  • Làm việc nhóm hiệu quả với GitHub
  • Giải quyết conflict khi nhiều người cùng sửa code