Blockdit Logo
Blockdit Logo (Mobile)
สำรวจ
ลงทุน
คำถาม
เข้าสู่ระบบ
มีบัญชีอยู่แล้ว?
เข้าสู่ระบบ
หรือ
ลงทะเบียน
Shoper Gamer
•
ติดตาม
7 เม.ย. เวลา 07:01 • การศึกษา
Git By Shoper Gamer
Git LFS คืออะไร
โดย
ในโลกของการเขียนโค้ด เราใช้ Git จัดการไฟล์ข้อความตัวเล็กๆ ได้อย่างยอดเยี่ยมครับ แต่พอต้องมารับมือกับไฟล์ไบนารีใหญ่ยักษ์ เช่น ไฟล์ภาพ 4K, วิดีโอโปรดักชัน หรือ โมเดล Machine Learning ระดับหลาย GB ปัญหาก็เกิดทันที! เพราะ Git จะเก็บ "ทุกเวอร์ชัน" ของไฟล์พวกนี้ไว้ใน Repository ตรงๆ ทำให้ขนาด Repo พองโตจน Clone กันเป็นชั่วโมง
Git Large File Storage (LFS) คือพระเอกที่ GitHub และ Atlassian ร่วมกันสร้างมาเพื่อแก้ปัญหานี้ในปี 2015 และ ตอนนี้ในปี 2026 มันได้กลายเป็นมาตรฐานที่ Git Hosting เจ้าดังทุกค่ายต้องมี! หลักการคือมันจะเปลี่ยนจากเก็บ "ไฟล์จริง" มาเก็บแค่ "ตั๋วแลกของ" (Pointer) เล็กๆ แทนส่วนไฟล์ตัวจริงน่ะเหรอ? แยกไปเก็บไว้ที่เซิร์ฟเวอร์ LFS ต่างหากครับ!
★
Git LFS คืออะไร?
มันคือส่วนขยาย (Extension) ของ Git ที่ทำหน้าที่แยกไฟล์ใหญ่ออกจากซอร์สโค้ดหลัก โดยใช้กลไก
⚪ Pointer File
ไฟล์ข้อความจิ๋ว (~130-200 bytes) ที่บอกว่าไฟล์จริงอยู่ที่ไหน และ มีรหัสตรวจสอบ (SHA-256) คืออะไร
⚪ LFS Server
ถังเก็บไฟล์จริงขนาดใหญ่ที่แยกออกมาจากตัว Git Repo
⚪ Auto-Fetch
เวลาคุณ Clone หรือ Checkout ระบบจะไปดูที่ Pointer แล้วรีบไปเบิกไฟล์จริงจากเซิร์ฟเวอร์มาวางให้คุณใช้งานเองอัตโนมัติครับ
★
Git LFS ทำงานอย่างไร
1) ตอนเก็บไฟล์ (Clean)
เมื่อคุณ git add ไฟล์ที่กำหนดไว้ LFS จะคำนวณรหัส และ ดูดไฟล์จริงไปเก็บไว้ที่ Local Cache และ เตรียมส่งขึ้น LFS Server จากนั้นจะวาง "ตั๋วแลกของ" (Pointer) ไว้ใน Git แทน
2) ตอนเรียกใช้ (Smudge)
เมื่อคุณ Checkout หรือ งานมา LFS จะดูที่ตั๋วแล้วรีบไปเช็คในเครื่องว่ามีไฟล์จริงไหม? ถ้าไม่มีมันจะดาวน์โหลดจาก LFS Server มาคืนให้คุณในโฟลเดอร์ทำงานทันที
3) การตั้งค่าเบื้องหลัง
เมื่อรัน git lfs install ระบบจะเซ็ตค่า clean , smudge และ process ใน Git Config ให้เราอัตโนมัติ เพื่อให้ Filter เหล่านี้ทำงานร่วมกับไฟล์ที่เรากำหนดใน .gitattributes ครับ
★
ประเภทของ Git LFS ที่ต้องเลือกใช้
1) แบ่งตามวิธีการใช้งาน
⚪ Basic LFS
เน้นเก็บ และ คุมเวอร์ชันไฟล์ใหญ่ทั่วไป เหมาะกับงาน Asset ที่ทีมแยกกันทำคนละส่วน ไม่ต้องกลัวใครทับงานใคร
⚪ LFS with File Locking
ระบบ "ล็อกไฟล์" ป้องกันการแก้ไขพร้อมกัน เหมาะมากสำหรับไฟล์ Binary (เช่น .psd, .bin) ที่ Merge ไม่ได้ ถ้าใครล็อกไว้ คนอื่นจะแก้ไม่ได้จนกว่าจะ Unlock ครับ
2) ฟีเจอร์เด็ด File Locking
เปิดตัวมาตั้งแต่ v2.0.0 เพื่อให้เราสั่ง --lockable กับไฟล์ที่ต้องการได้ เมื่อไฟล์ถูกมาร์คไว้ มันจะกลายเป็น Read-only ในเครื่องคนอื่นทันที เพื่อป้องกันการเผลอแก้ทับงานเพื่อน!
★
6 ประโยชน์เน้นๆ ของการใช้ Git LFS
1) Repo เบาหวิว
ไฟล์ใหญ่ไปอยู่นอก Git แล้ว Repo คุณจะเล็ก และ จัดการง่ายมาก
2) Clone ไวสะใจ
เพราะโหลดแค่ Pointer ก่อน ส่วนไฟล์ใหญ่ค่อยทยอยโหลดตามที่ใช้จริง หรือ จะเลือกโหลดเฉพาะโฟลเดอร์ที่ต้องใช้ผ่าน fetchinclude ก็ได้
3) ประหยัด Bandwidth
ไม่ต้องโหลดไฟล์ใหญ่ทุกเวอร์ชันมาเก็บในเครื่องถ้าไม่ได้เรียกใช้จริง
4) จบปัญหา Merge Conflict
ด้วยระบบ File Locking ทำให้ไม่ต้องมานั่งกุมขมับตอนไฟล์ Binary ชนกัน
5) ทลายกำแพง 100MB
Push ไฟล์ขนาดหลาย GB ขึ้นโฮสต์ได้สบายๆ (ตามโควตาที่คุณมี)
6) ประวัติยังครบ
ถึงจะเก็บแยก แต่คุณยังย้อนกลับไปดูไฟล์เวอร์ชันเก่าๆ ได้เหมือนเดิมเป๊ะครับ
★
ควรมีพื้นฐานอะไรบ้าง
🧑🦱 สายเริ่มต้น
ต้องใช้คำสั่ง Git พื้นฐานเป็น (add, commit, push, clone) และ รู้จักการรันคำสั่งใน Terminal
🧑💻 สายตั้งค่า
ควรรู้จักไฟล์ .gitattributes เพราะเป็นหัวใจในการบอก Git ว่า "ไฟล์ไหนต้องใช้ LFS"
🧑🔧 สาย Admin
หากจะใช้ระบบ Lock ไฟล์ ต้องเข้าใจเรื่องสิทธิ์การเข้าถึง (Permissions) ของทีมในโปรเจกต์นั้นๆ
★
อัปเดตสิทธิ์ และ โควตาบัญชี
ปัจจุบัน Git Hosting เจ้าดังมีนโยบาย LFS ที่น่าสนใจดังนี้ครับ
⚪ GitHub
แผนฟรีให้พื้นที่ 1GB และ Bandwidth 1GB/เดือน (ซื้อเพิ่มได้ $5/50GB)
⚪ GitLab / Gitea
หากคุณรันแบบ Self-managed (ตั้งเซิร์ฟเวอร์เอง) พื้นที่ LFS จะขึ้นอยู่กับ Hard Drive ของคุณเลยครับ! ฟรี และ ไม่จำกัด (นอกจากความจุเครื่องจะเต็ม)
⚪ Bitbucket
มีระบบคิดราคาตาม Tier ของผู้ใช้งานและ พื้นที่จัดเก็บ
★
ตัวอย่างการใช้งาน
1) เริ่มต้นติดตั้ง (ครั้งแรกครั้งเดียว)
```bash
brew install git-lfs
# ติดตั้งลงเครื่อง (macOS)
git lfs install
# ฝังระบบ LFS เข้ากับ Git ในเครื่องเรา
```
2) สั่งให้ LFS คุมไฟล์ที่ต้องการ
```bash
git lfs track "*.psd"
# ให้ LFS ดูแลไฟล์ Photoshop ทั้งหมด
git lfs track "*.mp4" # ดูแลไฟล์วิดีโอ
git add .gitattributes # เก็บไฟล์ตั้งค่าเข้า Git (สำคัญมาก!)
git commit -m "Track large assets with LFS"
```
3) การล็อกไฟล์ (File Locking)
```bash
git lfs lock "design/main.psd"
# ล็อกไว้ ฉันจะแก้ไฟล์นี้คนเดียว!
# แก้ไขเสร็จ Push งานแล้วอย่าลืม...
git lfs unlock "design/main.psd"
# ปลดล็อกให้เพื่อนทำต่อ
git lfs locks
# เช็คดูว่าใครล็อกไฟล์ไหนอยู่บ้าง
```
4) เทคนิคประหยัดพื้นที่และเวลา
```bash
# ดึงเฉพาะไฟล์ในโฟลเดอร์ images มาใช้งาน
git config lfs.fetchinclude "images/*"
# ลบไฟล์ LFS เก่าๆ ในเครื่องที่ไม่ได้ใช้แล้วเพื่อคืนพื้นที่
git lfs prune
```
✏️ Shoper Gamer
>>
https://shopergamer.vercel.app
✓
Repository คืออะไร 👇
>>
https://www.blockdit.com/posts/683c45a1efa1e514a77b506a
Credit :
👇
●
https://git-lfs.com/
●
https://docs.github.com/en/repositories/working-with-files/managing-large-files/about-git-large-file-storage
●
https://docs.gitlab.com/topics/git/lfs/
●
https://www.geeksforgeeks.org/git/git-lfs-large-file-storage/
●
https://www.devopsschool.com/blog/what-is-git-lfs-and-use-cases-of-git-lfs/
ข่าวรอบโลก
เทคโนโลยี
git
บันทึก
1
2
ดูเพิ่มเติมในซีรีส์
Git
1
2
โฆษณา
ดาวน์โหลดแอปพลิเคชัน
© 2026 Blockdit
เกี่ยวกับ
ช่วยเหลือ
คำถามที่พบบ่อย
นโยบายการโฆษณาและบูสต์โพสต์
นโยบายความเป็นส่วนตัว
แนวทางการใช้แบรนด์ Blockdit
Blockdit เพื่อธุรกิจ
ไทย