Tìm hiểu Git LFS
Git LFS (Large File Storage) là một bản mở rộng của Git được phát triển bởi Atlassian (Nổi tiếng với Bitbucket và JIRA), Github và cộng đồng Open-Source . Git LFS giúp chúng ta tối ưu dung lượng tổng thể của 1 Repository khi Clone, Pull và Checkout trên Git bằng cách thay thế các file Media (Hình ảnh, Video, File thông thường…) thành những chuỗi text được trỏ lên Server và lưu với một cách thức khác với thông thường.
Git LFS sẽ giúp chúng ta giảm thiểu rất đáng kể khi chúng ta Clone, Pull hay Checkout với Repository. Khi mà trước đây nếu Repository của bạn có nhiều file lớn thì khi clone nó sẽ clone về toàn bộ Repository bao gồm tất cả File History Version (Các bản cập nhật của file) khiến dung lượng Repository của chúng ta càng ngày càng tăng.
Hiểu được điều này nên Git LFS được xây dựng trên kỹ thuật Lazyload (Cần thì lấy), vì thế mà khi clone, pull hay checkout source về sẽ rất nhanh và chúng ta có thể tải về các file lớn sau cũng được. Nhất là lúc cần fix code gấp mà gặp mạng mẽo bị “cá mập” cắn thì có mà than trời.
Một tin tốt cho các bạn là khi các bạn cài đặt Git LFS thì không ảnh hưởng nhiều đến thao tác trước giờ bạn làm với Git, các bạn chỉ cấu hình lúc đầu thôi mà còn rất là dễ nữa. Còn lại Git LFS sẽ tự động hết cho các bạn.
Cài đặt Git LFS
Yêu cầu:
- Đã cài đặt Git.
- Tạo Repository để test hoặc sử dụng Repository đang có sẵn của bạn.
- Hiều về Git trước đó là một lợi thế để bạn tiếp tục xem tiếp bài này.
Bước 1: Download Git LFS
Bước 2: Chọn hoặc tạo Repository của bạn
- Hãy cd vào đúng thư mục Repository của bạn trong Git Bash/Command Prompt/Windows PowerShell (Windows) hoặc Terminal (MacOS/Linux) và gõ lệnh:
git lfs install
Bước 3: Track những file có dung lượng lớn mà bạn muốn bằng Regular Expression (Regex) với lệnh sau:
// Track tất cả file với extension
git lfs track "*.jpg"
// Track tất cả file với nhiều extension
git lfs track "*.jpg" "*.png" "*.gif"
- Ở bước này nhỡ Track lộn thì sao? Ví dụ thay vì bạn ghi là git lfs track “*.jpg” thì bạn lại ghi là git lfs track “.jpg” nó không đúng với Regex nhưng Git LFS vẫn chấp nhận nhưng lại là với file đúng với tên gọi là .jpg . Lúc đó bạn hãy mở file .gitattributes lên và xóa dòng sau .jpg filter=lfs diff=lfs merge=lfs -text là xong. Cái này các bạn tự vọc đi rất dễ.
Bước 4: Commit và Push kèm file .gitattributes (rất quan trọng) và các file đó trong Repository sẽ bị xóa trên Git (Chỉ đối với Repository các bạn đang làm việc và đã có sẵn file trước đó) để việc setup Git LFS hoàn tất. Các bạn yên tâm nó sẽ không xóa file ở máy đâu nha, xóa file trên Git và chuyển nó ở 1 chỗ lưu trữ khác thôi.
Bước 5: Các bạn có thể kiểm tra Git LFS hoàn tất chưa có thể vào trang Repository của mình để xem, thường thì nó sẽ để là Git LFS Installed thì như vậy là hoàn tất rồi đó.
Như vậy sau 5 bước chúng ta đã hoàn thành cài đặt Git LFS, quá nhanh và dễ dàng đúng không các bạn. Nếu sau này các bạn Clone, Pull hay Checkout thì nếu máy bạn đã cài đặt sẵn Git LFS thì nó sẽ tự động tải về các file media cho các bạn và bạn yên tâm nó chỉ tải về những gì cần thiết cho commit bạn đang clone thôi nên rất nhẹ luôn chứ nếu mà tải hết như Git thông thường thì dẹp luôn đi chứ xài Git LFS làm gì nữa.
Các vấn đề gặp phải khi sử dụng Git LFS
Git LFS có rất nhiều lợi ích của nó nhưng đôi khi nó cũng có thể gây cho các bạn một số phiền phức phổ biến như sau:
- Máy quên cài Git LFS: đối với trường hợp này thì các bạn hãy cài như trên rồi sau đó tại Repository đó các bạn chạy lệnh thủ công git lfs pull để nó tự động tải về.
- Git LFS trên MacOS và Linux đôi khi gặp trục trặc 1 chút ở vấn đề cài đặt như Permission này nọ, cái này đòi hỏi các bạn 1 chút kiến thức về Terminal thì sẽ quyết nhanh thôi.
- Khi làm việc với đồng nghiệp thì bắt buộc họ cũng phải cài đặt Git LFS nên sẽ hơi khó chịu 1 chút với những đồng nghiệp “cứng đầu” không chịu cài dù có giải thích. Những người này có thể là họ ngại làm quen cái mới hoặc Repository của họ đã quá nhỏ rồi và cũng có khi là do cái tôi lớn quá nên nói không nghe.
Đó là những vấn đề sẽ xảy ra khi bạn dùng Git LFS, nếu bạn có thể giải quyết ổn thỏa hết các vấn đề trên thì “triển” thôi nào.
Tìm hiểu Git LFS qua Video
Các bạn có thể tham khảo 1 Repository mẫu về Git LFS tại đây: https://github.com/thienanblog/git-lfs-example
Một ví dụ trước và sau khi dùng Git LFS
Trước khi sử dụng Git LFS
Sau khi sử dụng Git LFS
Trân trọng cám ơn độc giả đã xem qua bài viết này, mong được sự ủng hộ của các bạn ở các bài viết tới.