Tìm hiểu Git Internals: Blobs, Trees, Commits và Xử lý Mâu thuẫn Merge

tsudev· 05/10/2026

Giới thiệu về Git Internals

Git là một công cụ quản lý mã nguồn mở rộng được sử dụng phổ biến trong phát triển phần mềm. Tuy nhiên, nhiều lập trình viên vẫn chưa hiểu rõ về cơ chế hoạt động bên trong của nó. Để sử dụng Git hiệu quả, chúng ta cần hiểu rõ về các khái niệm như Blobs, Trees, Commits và cách xử lý mâu thuẫn merge.

Blobs

Blob (Binary Large Object) là một đối tượng trong Git chứa dữ liệu của một file. Khi bạn thêm một file vào Git, nó sẽ được lưu trữ dưới dạng Blob. Mỗi Blob có một mã hash duy nhất, được sử dụng để xác định Blob đó. Ví dụ, khi bạn chạy lệnh git add file.txt, Git sẽ tạo một Blob mới chứa dữ liệu của file file.txt và lưu trữ nó trong cơ sở dữ liệu.

Trees

Tree là một đối tượng trong Git chứa thông tin về cấu trúc thư mục. Nó lưu trữ danh sách các file và thư mục con trong một thư mục. Mỗi Tree có một mã hash duy nhất, được sử dụng để xác định Tree đó. Ví dụ, khi bạn chạy lệnh git add ., Git sẽ tạo một Tree mới chứa thông tin về cấu trúc thư mục hiện tại và lưu trữ nó trong cơ sở dữ liệu.

Commits

Commit là một đối tượng trong Git chứa thông tin về một phiên bản cụ thể của mã nguồn. Nó lưu trữ thông tin về người commit, thời gian commit, và mã hash của Tree tương ứng. Mỗi Commit có một mã hash duy nhất, được sử dụng để xác định Commit đó. Ví dụ, khi bạn chạy lệnh git commit -m "Commit message", Git sẽ tạo một Commit mới chứa thông tin về phiên bản hiện tại của mã nguồn và lưu trữ nó trong cơ sở dữ liệu.

Xử lý Mâu thuẫn Merge

Khi bạn merge hai branch khác nhau, Git có thể gặp phải mâu thuẫn nếu hai branch có thay đổi khác nhau trên cùng một file. Trong trường hợp này, Git sẽ tạo một file chứa thông tin về mâu thuẫn và yêu cầu bạn giải quyết nó. Ví dụ, nếu bạn chạy lệnh git merge feature/new-feature và Git gặp phải mâu thuẫn trên file file.txt, nó sẽ tạo một file chứa thông tin về mâu thuẫn và yêu cầu bạn giải quyết nó.

Để giải quyết mâu thuẫn, bạn cần chỉnh sửa file chứa thông tin về mâu thuẫn và chạy lệnh git add để thêm file vào Git. Sau đó, bạn cần chạy lệnh git commit để commit phiên bản mới của mã nguồn. Ví dụ:

bash
git merge feature/new-feature
# Giải quyết mâu thuẫn trên file file.txt
git add file.txt
git commit -m "Giải quyết mâu thuẫn merge"

Kết luận


Tóm lại, Git Internals bao gồm các khái niệm như Blobs, Trees, Commits và cách xử lý mâu thuẫn merge. Hiểu rõ về các khái niệm này sẽ giúp lập trình viên sử dụng Git hiệu quả hơn. Để tìm hiểu thêm về Git Internals, bạn có thể tham khảo tài liệu chính thức của Git hoặc các nguồn tài liệu khác.

Nguồn: https://dev.to/devanshu_patil/mastering-git-internals-blobs-trees-commits-and-resolving-ugly-merge-conflicts-1k8j