Blockdit Logo
Blockdit Logo (Mobile)
สำรวจ
ลงทุน
คำถาม
เข้าสู่ระบบ
มีบัญชีอยู่แล้ว?
เข้าสู่ระบบ
หรือ
ลงทะเบียน
Shoper Gamer
•
ติดตาม
6 เม.ย. เวลา 13:30 • การศึกษา
Github By ShoperGamer
GitHub LFS คืออะไร
โดย
เคยไหมครับ? จะ Clone โปรเจกต์ทีรอนานเป็นชั่วโมง หรือ จะ Push งานขึ้น GitHub แล้วโดนดีดกลับเพราะไฟล์ใหญ่เกิน 100MB! นั่นเพราะ Git ถูกออกแบบมาเพื่อ "ซอร์สโค้ด" (ไฟล์ตัวอักษรเล็กๆ) แต่พอเราโยนไฟล์วิดีโอ .mp4, โมเดล 3D หรือ ไฟล์ดีไซน์ .psd เข้าไป Git จะพยายามเก็บ "ทุกเวอร์ชัน" ของไฟล์นั้นไว้จน Repo พองโตเป็น GB
Git Large File Storage (LFS) คือพระเอกที่จะมาแก้ปัญหานี้ครับ มันจะเปลี่ยนจากการเก็บ "ไฟล์จริง" มาเก็บแค่ "ตัวชี้" (Pointer) เล็กๆ ใน Git ส่วนตัวไฟล์จริงๆ จะถูกแยกไปเก็บไว้ในถังขยะเอ้ย! ถังเก็บไฟล์ขนาดใหญ่ (LFS Server) แทนทำให้ Repo ของคุณเบาหวิวเหมือนเดิมครับ!
★
GitHub LFS คืออะไร?
มันคือส่วนขยาย (Extension) ของ Git ที่ทำหน้าที่แยกไฟล์ใหญ่ออกจากซอร์สโค้ดหลัก โดยใช้หลักการ
⚪ Pointer File : ใน Git จะเหลือแค่ไฟล์ข้อความเล็กๆ (~130 bytes) ที่บอกว่า "ไฟล์จริงอยู่ที่ไหน"
⚪ LFS Server : เนื้อหาจริงจะถูกอัปโหลดไปเก็บไว้ที่นี่แยกต่างหาก
⚪ Auto-Magic : เวลาคุณ Clone หรือ Checkout ระบบจะไปดึงไฟล์จริงจาก LFS Server มาวางให้คุณใช้งานแบบเนียนๆ เองครับ
★
Github ทำงานอย่างไร?
1) ตอนเก็บไฟล์ (Clean)
เมื่อคุณ git add ไฟล์ที่กำหนดไว้ LFS จะคำนวณรหัส (Hash) และ ดูดไฟล์จริงไปเก็บที่ LFS Server แล้ววาง "ตั๋วแลกของ" (Pointer) ไว้ใน Git แทน
2) ตอนเรียกใช้ (Smudge)
เมื่อคุณ git checkout หรือ Clone งานมา LFS จะดูที่ตั๋วแล้วรีบไปเบิกไฟล์จริงจาก LFS Server มาคืนให้คุณในโฟลเดอร์ทำงานทันที
3) การทำงานร่วมกับ Git
⚪ git add
สร้าง Pointer และ เตรียมอัปโหลดไฟล์จริง
⚪ git commit
Commit แค่ไฟล์ Pointer (ไฟล์จริงไปรอที่ Server แล้ว)
⚪ git push
ส่ง Pointer ขึ้น Repo และ เช็คว่าไฟล์จริงบน LFS Server อัปเดตครบ หรือ ยัง
⚪ git clone / checkout
ดึงไฟล์จริงมาแสดงผลตาม Pointer ที่ระบุไว้
★
ประเภทของ Git LFS ที่ต้องเลือกใช้
⚪ Basic LFS
เน้นเก็บ และ คุมเวอร์ชันไฟล์ใหญ่ทั่วไป เหมาะกับงาน Asset ที่ทีมแยกกันทำคนละส่วน
⚪ LFS with File Locking
เพิ่มระบบ "ล็อกไฟล์" ป้องกันการแก้ไขพร้อมกัน เหมาะมากสำหรับไฟล์ Binary (เช่น .psd, .blend) ที่ Merge ไม่ได้ ถ้าใครล็อกไว้ คนอื่นจะแก้ไม่ได้จนกว่าจะ Unlock ครับ
⚪ ตำแหน่งการเก็บ
มีทั้งแบบ Cloud-managed (GitHub จัดการให้) และ Self-hosted (ตั้ง Server เอง เช่น Gitea หรือ GitLab)
★
6 ประโยชน์เน้นๆ ของการใช้ Git LFS
1) Repo เบาหวิว
ไฟล์ใหญ่ไปอยู่นอก Git แล้ว Repo คุณจะเล็ก และ จัดการง่ายมาก
2) Clone ไวสะใจ
เพราะโหลดแค่ Pointer ก่อนส่วนไฟล์ใหญ่ค่อยทยอยโหลดตามที่ใช้จริง
3) ประหยัด Bandwidth
ไม่ต้องโหลดไฟล์ใหญ่ทุกเวอร์ชันมาเก็บในเครื่องถ้าไม่ได้เรียกใช้
4) จบปัญหา Merge Conflict
ด้วยระบบ File Locking ทำให้ไม่ต้องมานั่งกุมขมับตอนไฟล์ Binary ชนกัน
5) ทลายกำแพง 100MB
Push ไฟล์ขนาดหลาย GB ขึ้น GitHub ได้สบายๆ (ตามโควตาที่เรามี)
6) ประวัติยังครบ
ถึงจะเก็บแยก แต่คุณยังย้อนกลับไปดูไฟล์เวอร์ชันเก่าๆ ได้เหมือนเดิมเป๊ะ
★
พื้นฐานควรมีอะไรบ้าง?
🧑🦱 พื้นฐาน Git
ต้องใช้คำสั่ง add, commit, push, clone เป็น
🧑💻 สาย Command Line
ต้องกล้าพิมพ์คำสั่งใน Terminal/Prompt บ้าง
🧑🔧 สาย Admin
หากจะใช้ระบบ Lock ไฟล์ ต้องเข้าใจเรื่องสิทธิ์การเข้าถึง (Permissions) และ Workflow ของทีม
★
ตัวอย่างการใช้งานจ
1) เริ่มต้นใช้งาน (ครั้งแรกครั้งเดียว)
```bash
brew install git-lfs # ติดตั้งลงเครื่อง
git lfs install # ฝังระบบ LFS เข้ากับ Git ในเครื่องเรา
```
2) สั่งให้ LFS คุมไฟล์ที่ต้องการ
```bash
git lfs track "*.psd" # ให้ LFS ดูแลไฟล์ Photoshop ทั้งหมด
git add .gitattributes # เก็บไฟล์ตั้งค่าเข้า Git ด้วย (สำคัญมาก!)
git commit -m "Track PSD files with LFS"
```
3) การล็อกไฟล์ (File Locking)
```bash
git lfs track "*.psd" --lockable # ตั้งค่าให้ไฟล์ PSD ล็อกได้
git lfs lock "design/main.psd" # ล็อกไว้ ฉันจะแก้ไฟล์นี้คนเดียว!
# แก้ไขเสร็จ Push งานแล้วอย่าลืม...
git lfs unlock "design/main.psd" # ปลดล็อกให้เพื่อนร่วมทีม
```
4) การจัดการไฟล์แบบประหยัดพื้นที่
```bash
git lfs fetch --all # ดึงไฟล์ LFS ทุกเวอร์ชันมาเก็บในเครื่อง
git lfs prune # ลบไฟล์ LFS เก่าๆ ที่ไม่จำเป็นออกเพื่อคืนพื้นที่ Hard Drive
git lfs ls-files # ดูว่าตอนนี้มีไฟล์ไหนบ้างที่ถูก LFS คุมอยู่
```
✏️ Shoper Gamer
>>
https://shopergamer.vercel.app
✓
ข้อจำกัดของ GitHub LFS สำหรับผู้ใช้งานฟรี 👇
>>
https://www.blockdit.com/posts/684501f213e40ddc8d33a619
✓
GitHub ฟรีทำอะไรได้บ้าง? ไขทุกข้อสงสัยเรื่องจำนวน Repo และขนาดไฟล์ 👇
>>
https://www.blockdit.com/posts/68394688dd8e8021549adfcc
Credit :
👇
●
https://github.com/pricing
●
https://docs.github.com/en/billing/concepts/product-billing/git-lfs
●
https://docs.github.com/en/repositories/working-with-files/managing-large-files/about-git-large-file-storage
ข่าวรอบโลก
เทคโนโลยี
github
บันทึก
1
2
ดูเพิ่มเติมในซีรีส์
Github
1
2
โฆษณา
ดาวน์โหลดแอปพลิเคชัน
© 2026 Blockdit
เกี่ยวกับ
ช่วยเหลือ
คำถามที่พบบ่อย
นโยบายการโฆษณาและบูสต์โพสต์
นโยบายความเป็นส่วนตัว
แนวทางการใช้แบรนด์ Blockdit
Blockdit เพื่อธุรกิจ
ไทย