Section 1: Lab: Git Fundamentals และ Git Internals
- แนวคิด Version Control แบบกระจาย และโครงสร้าง Working Directory, Staging Area, Repository
- ตั้งค่า git config และคำสั่งหลัก init, status, add, commit, log, diff และ .gitignore
- หลักการเขียน Commit Message ที่ดี และรูปแบบ Conventional Commits
- Object Model ของ Git (Blob, Tree, Commit, Tag) รวมถึง Reference, Branch และ HEAD
- Lab: สร้าง Repository ของ TeamBoard Web แล้วเปิดดู Object ใน .git ด้วย git cat-file
Section 2: Lab: Branching, Merging และ Conflict Resolution
- สร้างและสลับ Branch ด้วย git switch และ git branch
- Fast-forward Merge, Three-way Merge และ Rebase ควรเลือกใช้เมื่อใด
- แก้ Conflict ด้วย Command Line และ VS Code แล้ว Stage ด้วย git add --resolved (Git 2.56)
- ทำความสะอาด Branch ที่ Merge แล้ว และใช้ Tag กำหนดเวอร์ชัน
- Lab: จำลอง Conflict จากสอง Branch แล้วแก้ให้ถูกต้องทั้งสองวิธี
Section 3: Lab: History Rewriting จัดระเบียบประวัติให้สะอาด
- แก้ไข Commit ล่าสุดด้วย git commit --amend
- Interactive Rebase (git rebase -i): squash, fixup, reword, reorder และ drop
- นำ Commit เฉพาะไปใช้ใน Branch อื่นด้วย git cherry-pick
- กฎทอง: เขียนประวัติใหม่เฉพาะ Branch ส่วนตัว และ Push ด้วย --force-with-lease อย่างปลอดภัย
- Lab: รวบ Commit ที่รกให้เป็นชุดที่อ่านง่ายก่อนส่งงาน
Section 4: Lab: Debugging History, Recovery และ Git Hooks
- Log ขั้นสูงแบบกรองและ Graph, git blame, git log -S และ git grep
- ค้นหา Commit ที่ทำให้เกิด Bug ด้วย git bisect ทีละขั้น และแบบอัตโนมัติด้วย git bisect run
- git restore, git stash และความต่างระหว่าง revert กับ reset (soft, mixed, hard)
- กู้คืน Commit หรือ Branch ที่หายด้วย git reflog
- Git Hooks ฝั่ง Client เช่น pre-commit และ commit-msg สำหรับตรวจสอบก่อน Commit
Section 5: Workshop Day 1: TeamBoard Web บนเครื่องของตนเอง
- Clone Repository ที่เตรียมไว้ซึ่งมีประวัติ Commit รกและมี Bug ซ่อนอยู่
- พัฒนาฟีเจอร์ใหม่บน Branch แยก แล้วจำลองและแก้ Merge Conflict
- จัดระเบียบประวัติด้วย Interactive Rebase และหา Commit ที่ทำให้หน้าเว็บผิดด้วย git bisect
- Workshop: กู้คืน Branch ที่ถูกลบด้วย Reflog และติดตั้ง Hook ตรวจรูปแบบ Commit Message