Cơ bảnKiến thức cơ bản

Git Branch là gì? Cách tạo, merge và quản lý branch

8 phút đọc1 lượt xem
#git branch#git merge#github flow#git switch#git conflict

Git Branch là gì?

Website đang chạy bình thường. Sếp giao cho bạn thêm tính năng đăng nhập mới. Bạn code ở đâu để không làm hỏng code đang hoạt động?

Câu trả lời là Git Branch. Đây là một trong những tính năng quan trọng nhất của Git, giúp bạn làm việc chuyên nghiệp như một lập trình viên thực thụ.

Git Branch là gì?

Branch (nhánh) trong Git là một không gian làm việc riêng biệt – tách ra từ code chính mà không ảnh hưởng đến nó.

Hình ảnh dễ hiểu: Như cành cây mọc từ thân cây. Bạn có thể cắt tỉa cành mà không làm hỏng thân cây.

Tại sao cần dùng Branch?

  1. An toàn khi phát triển tính năng mới: Code thoải mái mà không sợ làm hỏng bản đang chạy
  2. Làm việc nhóm không bị xung đột: Mỗi người một branch riêng
  3. Dễ rollback khi có lỗi: Xóa branch, code cũ vẫn nguyên

Tìm hiểu thêm về Git cơ bản: Git là gì?Các lệnh Git cơ bản

Các lệnh Git Branch cơ bản

Xem danh sách branch

# Branch local
git branch

# Branch local + remote
git branch -a

Kết quả mẫu:

* main            ← dấu * = branch bạn đang ở
  feature/login
  bugfix/header

Tạo branch mới

# Tạo branch mới (chưa chuyển sang)
git branch feature/login

# Tạo và chuyển sang ngay (cách hay dùng nhất)
git switch -c feature/login

Quy tắc đặt tên branch:

  • feature/ten-tinh-nang: Tính năng mới
  • bugfix/ten-bug: Sửa lỗi thông thường
  • hotfix/ten-loi-khan: Sửa lỗi khẩn cấp trên production

Chuyển branch

# Cách mới (Git 2.23+, được khuyến dùng)
git switch main

# Cách cũ (vẫn hoạt động)
git checkout main

Xem đang ở branch nào

git branch    # dấu * cho biết branch hiện tại
git status    # dòng đầu tiên hiện tên branch

Merge Branch trong Git

Cách merge cơ bản

# Bước 1: Chuyển về branch muốn nhận code
git switch main

# Bước 2: Merge branch kia vào
git merge feature/login

Fast-forward merge (đơn giản nhất)

Trước merge:
main:    A → B
feature:         → C → D

Sau merge (fast-forward):
main:    A → B → C → D

Xảy ra khi main không có commit mới sau khi tách branch.

Xử lý Conflict (Xung đột)

Conflict xảy ra khi 2 người cùng sửa cùng 1 dòng trong cùng 1 file:

<<<<<<< HEAD (nội dung của main)
<h1>Tiêu đề cũ</h1>
=======
<h1>Tiêu đề mới</h1>
>>>>>>> feature/login (nội dung của feature)

Cách giải quyết:

  1. Mở file bị conflict
  2. Chọn giữ phần nào (hoặc kết hợp cả hai)
  3. Xóa các dòng <<<<<<<, =======, >>>>>>>
  4. Save file
  5. Chạy lệnh:
git add ten-file-bi-conflict
git commit -m "Giải quyết conflict"

Xóa Branch

# Xóa branch đã merge (an toàn)
git branch -d feature/login

# Xóa branch chưa merge (ép buộc)
git branch -D feature/login

Thói quen tốt: Xóa branch sau khi đã merge. Repository sạch, dễ quản lý.

Git Branch trong làm việc nhóm – GitHub Flow

Quy trình được nhiều team sử dụng:

1. git switch -c feature/add-search  (tạo branch mới)
2. Code, commit thường xuyên
3. git push origin feature/add-search (đẩy lên GitHub)
4. Tạo Pull Request trên GitHub
5. Code review bởi teammate
6. Merge vào main
7. Xóa branch

Tìm hiểu thêm về GitHub: GitHub là gì?

Thực hành: Workflow từ A đến Z

# 1. Lấy code mới nhất
git pull origin main

# 2. Tạo branch mới
git switch -c feature/add-search

# 3. Code, commit
git add .
git commit -m "Thêm search box vào header"

# 4. Đẩy lên GitHub
git push origin feature/add-search

# 5. Tạo Pull Request trên GitHub (web UI)

# 6. Sau khi merge: dọn dẹp
git switch main
git pull origin main
git branch -d feature/add-search

Bảng tổng hợp lệnh Git Branch

Lệnh Chức năng
git branchXem branch local
git branch -aXem tất cả branch
git branch <tên>Tạo branch mới
git switch <tên>Chuyển sang branch
git switch -c <tên>Tạo và chuyển branch
git merge <tên>Merge branch vào hiện tại
git branch -d <tên>Xóa branch đã merge
git branch -D <tên>Xóa branch (ép buộc)

Câu hỏi thường gặp (FAQ)

Nên đặt tên branch như thế nào?

Dùng chữ thường, phân cách bằng - hoặc /. Ví dụ: feature/user-login, bugfix/cart-calculation. Tên nên mô tả rõ mục đích.

Có thể có bao nhiêu branch?

Không giới hạn. Nhưng branch không dùng nữa nên xóa đi để repo gọn gàng.

Branch local và remote khác nhau thế nào?

Branch local tồn tại trên máy bạn. Branch remote tồn tại trên GitHub/GitLab. Dùng git push để đồng bộ local lên remote.

Về tác giả

Ảnh đại diện tác giả Kenji — họa tiết hình học

Kenji

Kỹ sư phần mềm full-stack (Web), hơn 5 năm kinh nghiệm thực tế

  • Python
  • DB
  • Hạ tầng
  • Đào tạo & cố vấn
  • AI

Làm việc cùng đồng nghiệp người Việt, tôi thấy thiếu tài liệu kỹ thuật rõ ràng bằng tiếng Việt. codeahoc là nơi tôi chia sẻ theo hướng thực tế, dễ áp dụng.

Nguyên tắc nội dung

  • Ưu tiên nguồn gốc và góc nhìn từ thực tế triển khai.
  • Nếu có sai sót, nội dung sẽ được cập nhật và sửa kịp thời.
Quảng cáo