Mục Lục
1. Giới thiệu
Khi bạn thực hiện một commit trong Git, thông tin về commit được lưu trữ trong thư mục .git
của repository. Cấu trúc và vị trí lưu trữ của commit trong Git được tổ chức như sau:
2. Thư mục .git/objects
- Vị trí:
.git/objects
- Chức năng: Đây là nơi Git lưu trữ tất cả các đối tượng (objects) của repository, bao gồm commits, trees, blobs, và tags. Các đối tượng này được lưu trữ theo định dạng hash SHA-1, và thư mục
objects
chứa các tệp và thư mục con tương ứng với các hash này.
3. Cấu trúc của Commit
Một commit trong Git được lưu trữ dưới dạng một đối tượng (object) trong thư mục .git/objects
. Đây là cách Git tổ chức và lưu trữ các commit:
- Đối tượng Commit (Commit Object)
- Vị trí:
objects/<first-two-characters-of-sha1>/<remaining-characters-of-sha1>
- Chức năng: Mỗi commit được lưu trữ dưới dạng một đối tượng trong thư mục
objects
. Tên tệp của commit được xác định bằng hash SHA-1 của đối tượng commit. Hash này là một chuỗi 40 ký tự đại diện cho nội dung của commit. - Cấu trúc: Đối tượng commit lưu trữ thông tin về:
- Commit Metadata: Thông tin về tác giả (author), người cam kết (committer), và ngày giờ cam kết.
- Message: Thông điệp commit.
- Tree Object: Một đối tượng tree mà commit trỏ tới, chứa thông tin về cấu trúc và trạng thái của thư mục khi commit được thực hiện.
- Parent Commits: Các commit cha, nếu commit hiện tại là một commit không phải là commit gốc.
- Vị trí:
4. Ví dụ về Cấu trúc Commit
Nếu bạn có một commit với hash SHA-1 là abc1234
, nó sẽ được lưu trữ trong tệp có đường dẫn sau:
.git/objects/ab/c1234
5. Tóm tắt
- Commit Object: Được lưu trữ trong thư mục
.git/objects
dưới dạng một tệp nhị phân với tên tệp dựa trên hash SHA-1 của đối tượng commit. - Cấu trúc Commit: Bao gồm metadata, message, tree object, và các commit cha.
Việc hiểu cấu trúc lưu trữ của commit trong Git giúp bạn nắm vững cách Git quản lý và truy xuất lịch sử mã nguồn, đồng thời giúp bạn thao tác hiệu quả hơn với các đối tượng commit trong dự án của mình.
Xin chào,
99,99% bài viết tại website là kết quả của khai thác dữ liệu từ AI ChatGPT sau đó được lựa chọn, biên tập lại nội dung, chỉ vài bài là không dùng AI. Tôi lưu tại website này để tra cứu khi cần, để học và để chia sẻ cho bạn bè tôi. Nếu bạn tìm thấy nội dung nào đó khi tìm kiếm thì cứ đọc thoải mái, nó miễn phí, không quảng cáo.
Các bạn có thể tải app của tôi trên App Store hoặc Google Play:
QuestionBank-Ôn thi vào 10: phiên bản iOS, phiên bản Android
TypingTest by QuestionBank: phiên bản iOS, phiên bản Android
Xin cảm ơn,
Minh