Skip to content

1. Tạo & Chuyển Branch (Management)

IMPORTANT

GOAL: Hiểu cách phân nhánh để làm việc song song mà không ảnh hưởng đến code chính (First Rule of Teamwork).

1.1 Tại sao cần Branch?

Hãy tưởng tượng Main Branch là phiên bản sản phẩm đang chạy ổn định cho khách hàng. Bạn không thể viết tính năng mới trực tiếp trên đó. Nếu code lỗi, sản phẩm sập.

-> Giải pháp: Tạo một Branch (nhánh) riêng, copy toàn bộ code hiện tại sang đó, và thoải mái đập đi xây lại.


1.2 Các lệnh cơ bản

Tạo Branch mới

Cách cũ (vẫn dùng nhiều):

bash
git checkout -b feature/login-page

Cách mới (Modern Git, khuyên dùng):

bash
git switch -c feature/login-page

(Option -c nghĩa là Create).

Chuyển đổi giữa các Branch

bash
git switch main
# Quay lại nhánh chính

git switch feature/login-page
# Quay lại nhánh tính năng

TIP

Tại sao nên dùng git switch? Vì lệnh checkout quá đa năng (vừa chuyển branch, vừa restore file), dễ gây nhầm lẫn. switch chỉ làm một việc duy nhất: chuyển branch. An toàn hơn.


1.3 Naming Convention (Quy tắc đặt tên)

Đừng đặt tên branch là test, abc, fix1. Hãy chuyên nghiệp.

HPN Standard Format:<type>/<short-description>

TypeSử dụng khi nào?Ví dụ
feature/Phát triển tính năng mớifeature/payment-gateway, feature/dark-mode
bugfix/Sửa lỗi không gấpbugfix/header-alignment, bugfix/login-error
hotfix/Sửa lỗi chí mạng (Live)hotfix/crash-on-ios, hotfix/security-patch-v1
chore/Cấu hình, nâng cấp libchore/upgrade-react-19

HPN's Pro Tip:

"Tên branch là tài liệu sống. Nhìn tên bugfix/cart-calculation là biết ngay đồng nghiệp đang sửa cái gì mà không cần hỏi."

🧠 Quiz

Câu 1: Tại sao nên dùng git switch thay vì git checkout để chuyển branch?

  • [ ] A) Vì git checkout đã bị loại bỏ trong Git mới
  • [x] B) Vì git switch chỉ làm một việc (chuyển branch), tránh nhầm lẫn với restore file
  • [ ] C) Vì git switch nhanh hơn git checkout
  • [ ] D) Vì git checkout không hoạt động với remote branch

💡 Giải thích: git checkout quá đa năng (vừa chuyển branch, vừa restore file, vừa detach HEAD), dễ gây nhầm lẫn. git switch được tạo ra từ Git 2.23 với mục đích duy nhất: chuyển branch. Nguyên tắc Single Responsibility.

Câu 2: Naming convention chuẩn cho branch name theo format nào?

  • [ ] A) name-date-description (vd: john-0601-fix)
  • [x] B) <type>/<short-description> (vd: feature/payment-gateway)
  • [ ] C) description_type_number (vd: fix_bug_001)
  • [ ] D) Không có convention, đặt tên tùy ý

💡 Giải thích: Format chuẩn Enterprise là <type>/<short-description> với các type như feature/, bugfix/, hotfix/, chore/. Tên branch là tài liệu sống - nhìn tên là biết đồng nghiệp đang làm gì.

Câu 3: Lệnh nào tạo branch mới VÀ chuyển sang branch đó ngay lập tức?

  • [ ] A) git branch new-feature
  • [x] B) git switch -c new-feature
  • [ ] C) git push origin new-feature
  • [ ] D) git merge new-feature

💡 Giải thích: git switch -c <branch-name> (hoặc git checkout -b) tạo branch mới và chuyển sang ngay. git branch chỉ tạo branch mà không chuyển sang.