Git เก็บโค้ดทั้งโปรเจกต์ใน 41 ไบต์ได้อย่างไร
Git stores your entire project in 41 bytes — ประโยคนี้ฟังดูเหลือเชื่อ แต่มันคือความจริงทางวิศวกรรมที่อยู่เบื้องหลังระบบควบคุมเวอร์ชันที่นักพัฒนาทั่วโลกใช้งานทุกวัน ไม่ว่าโปรเจกต์ของคุณจะมีไฟล์ 10 ไฟล์หรือ 10 ล้านไฟล์ Git ก็สามารถอ้างอิง “สถานะทั้งหมด” ของโปรเจกต์ ณ เวลานั้นได้ด้วยตัวอักษรเพียง 41 ตัว บทความนี้จะพาคุณไปดูว่ากลไกเบื้องหลังนี้ทำงานอย่างไร ตั้งแต่การกด git add จนถึงการ push ขึ้น GitHub TL;DR: Git ไม่ได้เก็บโค้ดทั้งโปรเจกต์ไว้ใน 41 ไบต์จริงๆ แต่ Git ใช้ SHA-1 hash ที่มีความยาว 40 ตัวอักษรฐาน 16 บวกอักขระขึ้นบรรทัดใหม่ 1 ตัว รวมเป็น 41 ไบต์ เพื่อเป็น “ลายนิ้วมือ” อ้างอิงถึงเนื้อหาทั้งหมดของ … Read more