การดูประวัติเวอร์ชัน

Introduction to Git

George Boorman

Curriculum Manager

โครงสร้างของ commit

Git commit มี 3 ส่วน:

  1. Commit

    • เก็บ metadata ได้แก่ ผู้เขียน, ข้อความ log, และเวลาที่ commit
  2. Tree

    • ติดตามชื่อและตำแหน่งของไฟล์และไดเรกทอรีใน repo
    • คล้าย dictionary — จับคู่ key กับไฟล์/ไดเรกทอรี
  3. Blob
    • Binary Large OBject
    • เก็บข้อมูลได้ทุกประเภท
    • สแนปชอตแบบบีบอัดของเนื้อหาในไฟล์
Introduction to Git

การแสดงโครงสร้างของ commit

ไดอะแกรมแสดง commit สามรายการ พร้อมไฟล์ที่ commit แสดงอยู่ใน tree และแต่ละไฟล์เชื่อมโยงกับ blob ของ commit ล่าสุด

Introduction to Git

การแสดงโครงสร้างของ commit

ไดอะแกรมแสดง commit แรก เชื่อมโยงกับ report และ mental health survey ใน tree ซึ่งเชื่อมต่อกับสแนปชอตของเนื้อหาแต่ละไฟล์ใน blob

Introduction to Git

การแสดงโครงสร้างของ commit

ไดอะแกรมแสดง commit แรกและ commit ที่สอง โดย commit ที่สองเชื่อมโยงกับ report, mental health survey, และ summary statistics ใน tree โดย report เชื่อมกับ blob ของ commit ก่อนหน้า ส่วนอีกสองไฟล์เชื่อมกับ blob ของ commit ที่สอง

Introduction to Git

การแสดงโครงสร้างของ commit

ไดอะแกรมแสดง commit สามรายการ พร้อมไฟล์ที่ commit เชื่อมโยงกับ tree และแต่ละไฟล์เชื่อมกับ blob ของ commit ล่าสุดที่ไฟล์นั้นเป็นส่วนหนึ่ง

Introduction to Git

Git hash

commit ล่าสุด: b22eb75a82a68b9c0f1c45b9f5a9b7abe281683a

  • ตัวสร้างตัวเลขสุ่มเทียม—ฟังก์ชัน hash

  • Hash ช่วยให้แชร์ข้อมูลระหว่าง repo ได้

    • ถ้าไฟล์สองไฟล์เหมือนกัน
      • hash ของทั้งสองก็จะเหมือนกัน
    • Git ต้องเปรียบเทียบแค่ hash เท่านั้น
Introduction to Git

Git log

git log
  • แสดง commit จากใหม่สุดไปเก่าสุด
commit ad8accfe94cb924444c488132bdef7c54b9bca68
Author: Rep Loop <[email protected]>
Date:   Wed Jul 24 07:48:27 2022 +0000

    Added reminder to cite funding sources.
:
  • กด space เพื่อดู commit ก่อนหน้า
  • กด q เพื่อออกจาก log และกลับสู่เทอร์มินัล
Introduction to Git

มาฝึกกันเถอะ!

Introduction to Git

Preparing Video For Download...