HocTotGit.io

Git cơ bản (Fundamentals)
  • Version Control là gì?
  • Git là gì?
  • Cài đặt và cấu hình Git
  • Quiz
  • Thuật ngữ cốt lõi
  • Tạo repository
  • Theo dõi file
  • Quy trình commit
  • Quiz
  • Kiểm tra log
  • Hủy thay đổi
  • Cập nhật commit
  • Quiz
  • Lý thuyết về nhánh
  • Tạo và chuyển nhánh
  • Merge nhánh
  • Giải quyết merge conflict
  • Quiz
Liên kết
Blog
Hỗ trợ

Email: work.lamsun@gmail.com

Yêu thích nền tảng

Hãy chia sẻ ý kiến của bạn

HocTotGit.io

© 2026 HocTotGit.

Lý thuyết về nhánh

Phân nhánh (Branching) là một trong những tính năng mạnh mẽ nhất của Git, giúp bạn dễ dàng thử nghiệm và phát triển tính năng mới mà không làm ảnh hưởng đến mã nguồn chính. Trong bài học này, chúng ta sẽ tìm hiểu bản chất của nhánh và lý do tại sao nó lại quan trọng đến vậy.


1. Lý thuyết về nhánh

Để thực sự hiểu về việc phân nhánh (branching), trước hết chúng ta cần nhìn lại bản chất của commit.

Ở bài trước, chúng ta đã biết commit giống như một "chiếc hộp" gói gọn thông tin tại một thời điểm: file nào thay đổi, thay đổi khi nào, do ai, và một mã hash để phân biệt nó với các commit khác.

Nhánh thực chất là một chuỗi các commit

Khi nói đến nhánh (branch), thông tin quan trọng nhất mà một commit nắm giữ chính là một con trỏ (pointer) trỏ ngược về "người cha" (parent) của nó. Hãy hình dung thế này:

  1. Mỗi khi bạn tạo một commit mới, nó sẽ tự động trỏ về commit nằm ngay trước nó.

  2. Các kết nối này tạo thành một chuỗi tuyến tính, commit sau nối tiếp commit trước.

  3. Trong Git, chuỗi này được gọi là branch.

Ban đầu, dự án của bạn chỉ có một chuỗi duy nhất. Chuỗi mặc định này thường được gọi là main branch.

Main branch
Ảnh minh họa: Chuỗi commit tạo nên main branch

Tuy nhiên, Git cho phép một parent commit có thể có nhiều child commit (nhiều commit con cùng trỏ về một cha). Chính cơ chế này cho phép dòng lịch sử tách ra (diverge) và hình thành nhiều nhánh khác nhau.

Feature branch
Ảnh minh họa: Nhánh feature được hình thành

2. Tại sao chúng ta cần nhánh?

Việc chia nhánh mang lại 3 lợi ích cốt lõi cho quy trình làm việc:

  1. Sự riêng biệt: Đây là lợi ích lớn nhất, branch tạo ra các không gian phát triển riêng biệt. Bạn có thể thoải mái đập đi xây lại code ở branch này mà không hề ảnh hưởng đến branch khác.

  2. Thử nghiệm: Thông thường, main branch là nơi chứa mã nguồn ổn định nhất. Bằng cách tạo một branch riêng tách biệt khỏi main, bạn có ngay một môi trường "Sandbox" để phát triển tính năng mới.

  3. Hợp tác (Collaboration): Khi làm việc nhóm, branch cho phép mỗi lập trình viên làm việc trên một tính năng riêng của họ một cách độc lập. Khi làm xong, các phần việc này sẽ được gộp (merge) lại sau.


3. Gộp nhánh (Merging Branches)

Sau khi các nhánh phát triển độc lập, đến một lúc nào đó chúng cần phải hợp lại với nhau. Quy trình này gọi là merging. Git thực hiện điều này bằng cách tạo ra một Merge Commit.

  • Đây là một loại commit đặc biệt vì nó có tới hai cha.

  • Merge commit sẽ gom tất cả các thay đổi từ nhánh này và áp dụng chúng vào nhánh kia.

Merge commit
Ảnh minh họa: Merge commit

Tổng kết

Branch bản chất là một chuỗi các commit. Nhận thấy được lợi ích của tính năng branch, chúng ta hãy tìm hiểu và vận dụng branch hiệu quả trong các bài tiếp theo.

Tiếp theo: Tạo và chuyển nhánh