Mục Lục
Giới thiệu
Git LFS (Large File Storage) được thiết kế để quản lý các tệp lớn trong repository Git một cách hiệu quả hơn. Sử dụng Git LFS cho các loại tệp sau đây là hợp lý:
1. Các Tệp Nhị Phân Lớn (Large Binary Files)
- Ví dụ: Ảnh, video, âm thanh, đồ họa, mô hình 3D.
- Lý do: Các tệp nhị phân thường có kích thước lớn và không thể diff hoặc merge theo cách thông thường trong Git. Git LFS giúp giảm tải cho repository bằng cách lưu các tệp nhị phân này trên một server riêng biệt.
2. Tệp Thư Viện và Frameworks
- Ví dụ: Tệp
.dll
,.lib
,.so
,.framework
. - Lý do: Những tệp này thường có kích thước lớn và không thay đổi thường xuyên, nhưng khi thay đổi, chúng tạo ra các bản sao lớn trong lịch sử commit, làm phình to repository. Git LFS giảm kích thước repository chính bằng cách lưu trữ các tệp này bên ngoài.
3. Tệp Máy Ảo, Ảnh Disk, và Container Images
- Ví dụ: Tệp
.iso
,.vmdk
,.qcow2
, tệp Docker image. - Lý do: Đây là những tệp rất lớn, việc lưu trữ chúng trong lịch sử commit của Git có thể làm chậm quá trình clone và fetch repository.
4. Tệp Nén Lớn
- Ví dụ: Tệp
.zip
,.tar.gz
,.rar
. - Lý do: Các tệp nén thường chứa nhiều dữ liệu và việc theo dõi chúng trong Git không hiệu quả vì Git sẽ không thể tối ưu hóa lịch sử lưu trữ của những tệp này.
5. Tệp Dữ Liệu Khoa Học hoặc Machine Learning
- Ví dụ: Tệp
.csv
,.h5
,.npy
,.pkl
, dữ liệu huấn luyện, mô hình huấn luyện. - Lý do: Dữ liệu khoa học và machine learning thường có kích thước lớn và thay đổi liên tục, do đó rất phù hợp để quản lý với Git LFS.
6. Tệp Phần Mềm Được Biên Dịch
- Ví dụ: Tệp
.exe
,.apk
,.jar
,.bin
. - Lý do: Đây là các tệp lớn, được biên dịch từ mã nguồn và thường không cần thiết để lưu trong lịch sử commit, ngoại trừ phiên bản mới nhất. Git LFS giúp tách biệt những tệp này khỏi repository chính.
7. Tệp Cấu Hình Lớn
- Ví dụ: Tệp cấu hình cho các phần mềm phức tạp như
.xml
,.json
có kích thước lớn. - Lý do: Những tệp này có thể trở nên lớn hơn theo thời gian và có thể không cần thiết để giữ trong lịch sử commit đầy đủ.
Tóm lại:
Sử dụng Git LFS cho những tệp mà:
- Có kích thước lớn (thường trên 50 MB).
- Là nhị phân và không thể theo dõi sự khác biệt (diff) hay hợp nhất (merge) một cách hiệu quả.
- Không cần phải theo dõi chi tiết lịch sử của chúng trong repository.
Git LFS giúp giữ repository Git chính nhẹ nhàng hơn, cải thiện hiệu suất khi làm việc với các tệp lớn và giúp việc clone repository nhanh hơn.
Xin chào,
Bài viết này sử dụng AI ChatGPT để viết sau đó được lựa chọn, biên tập lại nội dung, chỉ một phần nhỏ các bài là tôi tự viết. Nội dung thể hiện ý chí cá nhân về các vấn đề, giải pháp. Tôi lưu tại website này để học, tra cứu và chia sẻ.
Tôi là Minh, sống tại Hà Nội, kỹ sư phần mềm với hơn 20 năm kinh nghiệm. Các ngôn ngữ yêu thích của tôi là Swift, Objective-C, Java, Kotlin, .NET, HTML, JavaScript, CSS, Bootstrap, jQuery, AngularJS, Angular…
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