Presentation นี้ ชื่อมันอาจจะไม่สื่อถึง Git และไม่ดึงดูดให้สนใจเท่าไหร่ แต่เนื้อหาดีมากครับ
ผู้พูดทำงานอยู่ Github และเป็นคนทำเว็บไซต์ 3 อันนี้ git-scm.com, gitref.org, progit.org
ต้นไม้ 3 ต้นที่เค้าพูดถึง คือ 3 ต้นไม้ส่วนประกอบสำคัญของ Git ได้แก่
- ต้นไม้ HEAD
- ต้นไม้ Index
- ต้นไม้ Working directory
เค้าเริ่มจากการอธิบายต้นไม้ 3 ต้นนี้
จากนั้นอธิบายถึงคำสั่ง git reset ว่า default, –soft, –hard ทำงานภายในอย่างไร ทำให้เข้าใจว่าทำไมเค้าถึง design คำสั่งออกมาแบบนี้ (แต่ก็รู้สึกว่าเป็นวิธีคิดแบบโปรแกรมเมอร์จริงๆ ทำให้อาจจะไม่เหมาะสำหรับ first impression)
การทำงานของ –soft จะเป็น subset ของการทำงานของ default และการทำงานของ default จะเป็น subset ของการทำงานของ –hard
- –soft จะอัพเดต HEAD และ current branch
- default จะอัพเดต HEAD, current branch และ Index
- –hard จะอัพเดต HEAD, current branch, Index, และ working directory
ผู้พูดได้ blog เรื่องส่วนนี้ไว้ที่ progit blog ด้วย
ตรงนี้ทำให้เข้าใจคำถามที่คาใจอยู่นานว่า ประโยชน์ของ Index มันเยอะเพียงพอให้ใส่เข้ามาในตัว tool เพื่อแล้วกลายเป็นต้องเพิ่มขั้นตอนในการทำงานขึ้นอีก 1 ขั้น จริงๆ หรือ
จากนั้น เค้าพูดต่อถึงเรื่อง git checkout ว่าคล้าย reset แต่เป็นการอัพเดต HEAD โดยไม่ได้อัพเดต current branch
จากนั้นก็เริ่มลงไปที่ internal command ของ git พร้อมกับการ demo บนจอซึ่งไม่ได้ capture มาด้วย + คนพูดๆ เร็วมากเลยฟังไม่ค่อยรู้เรื่องเท่าไหร่
ปล. ใครเจอปัญหา commit หายจาก reset –hard, git reflog และ git checkout ช่วยท่านได้นะครับ แต่ working directory หายนี่ ตัวใครตัวมัน