17 คะแนน โดย GN⁺ 2023-10-08 | 1 ความคิดเห็น | แชร์ทาง WhatsApp
  • คำอธิบายแบบละเอียดเกี่ยวกับไดเรกทอรี .git ที่ถูกสร้างขึ้นเมื่อรัน git init
  • ภายในไดเรกทอรี .git มีทั้งไฟล์และโฟลเดอร์หลายอย่าง เช่น config, HEAD, hooks, objects, refs เป็นต้น
    • ไฟล์ข้อความ config มีการตั้งค่า git ของรีโพซิทอรีปัจจุบัน รวมถึงค่าพื้นฐานอย่างผู้เขียนและโหมดไฟล์
    • ไฟล์ HEAD มี head ปัจจุบันของรีโพซิทอรีซึ่งชี้ไปยังบรานช์เริ่มต้น โดยอาจเป็น master หรือ main ตามที่ตั้งไว้เป็นบรานช์เริ่มต้น
    • ไดเรกทอรี hooks เก็บสคริปต์ทั้งหมดที่สามารถรันได้ก่อนและหลังการทำงานของ git
    • ไดเรกทอรี objects เก็บข้อมูลของไฟล์และคอมมิตในรีโพซิทอรี
    • ไดเรกทอรี refs เก็บรีเฟอเรนซ์หรือพอยน์เตอร์ที่ชี้ไปยังบรานช์และแท็ก
  • เมื่อมีการเพิ่มไฟล์เข้าไปในรีโพซิทอรี จะมีการแก้ไขไฟล์ index และเพิ่มโฟลเดอร์กับไฟล์ใหม่ในไดเรกทอรี objects
  • ไฟล์ใหม่ในไดเรกทอรี objects จะมีชนิด ขนาด และข้อมูลของไฟล์ที่เพิ่มเข้าไป และชื่อไฟล์จะมาจากค่า sha1 ของเนื้อหา
  • เมื่อมีการคอมมิตไฟล์ จะเกิดการเปลี่ยนแปลงหลายอย่าง เช่น การสร้างไฟล์ใหม่ชื่อ COMMIT_EDITMSG ที่มีข้อความคอมมิต และการเพิ่มอ็อบเจ็กต์ใหม่ในไดเรกทอรี objects
  • การสร้างบรานช์ใน git เป็นกระบวนการง่าย ๆ ที่รวมถึงการเพิ่มไฟล์ใหม่ในไดเรกทอรี refs/heads โดยมีชื่อบรานช์และ ID ของคอมมิตล่าสุด
  • การ checkout บรานช์คือการอัปเดตไฟล์ .git/HEAD ให้ชี้ไปยังบรานช์ที่ถูก checkout อยู่
  • การ merge บรานช์สามารถทำได้ 3 แบบ: fast forward merge, rebase merge และการสร้าง merge commit แยกต่างหาก
  • เมื่อมีการ push รีโพซิทอรี ข้อมูลทั้งหมดในไดเรกทอรี objects และบรานช์กับแท็กทั้งหมดภายใต้ refs ที่ถูก push อย่างชัดเจนจะถูกส่งไปยังรีโพซิทอรี git อื่น

1 ความคิดเห็น

 
[ความคิดเห็นนี้ถูกซ่อน]