> Jitrak Blog

>_ Fix Git loose object is corrupt

# วิธีแก้ปัญหา Git loose object is corrupt

@ Yosapol Jitrak | 14 Mar 2026 04:00
tags: Git

ผมเจอปัญหาตอนใช้งาน Git แล้วเจอ Error แบบนี้ ค่อนข้างบ่อย

error: object file .git/objects/e1/<hash> is empty
error: object file .git/objects/e1/<hash> is empty
fatal: loose object e1<hash> (stored in .git/objects/e1/<hash>) is corrupt

สาเหตุของปัญหานี้มักเกิดจาก Git object file เสียหาย

วิธีแก้ มี 2 วิธี

  1. ใช้คำสั่ง git fsck ใช้คำสั่ง git fsck เพื่อตรวจสอบและซ่อมแซม Object database ของ Git:
git fsck

git fsck (file system check) จะทำการตรวจสอบ Object database ทั้งหมดของ Git ว่ามี Object ไหนเสียหายหรือหายไปบ้าง โดยจะแสดงรายการ Object ที่มีปัญหาออกมาให้เราเห็น

หลังจากรัน git fsck แล้ว Git จะลบ Object ที่เสียหายออกไป และพยายาม Recover จาก Object ที่เหลืออยู่ ถ้า Object ที่เสียหายยังอยู่ใน Remote เราสามารถ Fetch กลับมาได้ด้วย:

git fetch --all
  1. ลบ Object ที่เสียหายแล้ว Fetch ใหม่

เราสามารถลบ Object file ที่มีขนาด 0 (ไฟล์เปล่า) ออกไปก่อน แล้ว Fetch จาก Remote ใหม่:

find .git/objects/ -size 0 -exec rm -f {} \;
git fetch origin

คำสั่ง find จะหาไฟล์ที่มีขนาด 0 byte ใน .git/objects/ แล้วลบออกไป จากนั้น git fetch origin จะดึง Object ที่หายไปกลับมาจาก Remote

หวังว่าจะเป็นประโยชน์กับคนที่เจอปัญหาเดียวกันครับ

═══════════════════ EOF ═══════════════════