สัปดาห์ที่ 14 Version Control

จุดประสงค์การเรียนรู้

  1. ใช้ Git Repository และ Commit เพื่อติดตามการเปลี่ยนแปลงได้
  2. ใช้ Branch เพื่อแยกงานและรวมงานได้
  3. ใช้ GitHub และ Pull Request เพื่อทำงานร่วมกันได้

เนื้อหา

Git

Git เป็นระบบควบคุมเวอร์ชันที่ช่วยเก็บประวัติการเปลี่ยนแปลงของโค้ด ผู้เรียนจะฝึกสร้าง repository, stage ไฟล์ และ commit งานอย่างมีความหมาย

Branch

Branch ช่วยแยกการพัฒนาฟีเจอร์หรือการแก้ไขปัญหาออกจากงานหลัก เมื่อเสร็จแล้วจึง merge กลับเพื่อรวมงาน

GitHub

GitHub เป็น Remote Repository สำหรับสำรองโค้ดและทำงานร่วมกัน Pull Request ใช้เสนอการเปลี่ยนแปลง ตรวจโค้ด และพูดคุยก่อนรวมงาน

Workshop

ทำงานร่วมกันเป็นทีมโดยสร้าง Branch, Commit, Push และเปิด Pull Request สำหรับ Mini Project

รายละเอียดการเรียนรู้

ผู้เรียนใช้ Git เป็นเครื่องมือจัดการประวัติ ไม่ใช่เพียงที่เก็บไฟล์ การ commit ควรมีขนาดพอดีและข้อความชัดเจนว่าเปลี่ยนอะไรและเพราะเหตุใด Branch ใช้แยกงานเพื่อให้พัฒนาได้โดยไม่กระทบ main branch

Pull Request ใช้เป็นพื้นที่ตรวจงาน อธิบายการเปลี่ยนแปลง แนบภาพหรือผลทดสอบ และรับข้อเสนอแนะก่อน merge หากเกิด conflict ผู้เรียนต้องอ่านความแตกต่างและรวมโค้ดด้วยความเข้าใจ

แนวปฏิบัติ

  1. Commit ทีละประเด็น
  2. เขียน commit message แบบสื่อความหมาย
  3. Pull ก่อนเริ่มงานและก่อน push
  4. เปิด Pull Request พร้อมคำอธิบายและวิธีทดสอบ

แบบฝึกหัด

สร้าง repository สำหรับ Mini Project ใช้ branch สำหรับ feature อย่างน้อย 1 branch และเปิด Pull Request พร้อมคำอธิบายการเปลี่ยนแปลง

รูปแบบการนำเสนอเพิ่มเติมตามแม่แบบ

Version Control คือระบบติดตามประวัติการเปลี่ยนแปลงของโค้ด ช่วยให้ย้อนกลับ ตรวจสอบ และทำงานร่วมกันได้อย่างเป็นระบบ

%%{init: {'theme': 'base', 'themeVariables': {'background': '#282828','primaryColor': '#3c3836','primaryTextColor': '#fbf1c7','primaryBorderColor': '#fabd2f','lineColor': '#83a598','secondaryColor': '#504945','tertiaryColor': '#665c54'}}}%%
gitGraph
  commit id: "init"
  branch feature
  checkout feature
  commit id: "add feature"
  checkout main
  merge feature

สมการความถี่ของ Commit

F=cd

ตัวอย่างคำสั่งทดลอง

# สร้าง branch สำหรับฟีเจอร์ใหม่
git switch -c feature-login

# ตรวจไฟล์ที่เปลี่ยนแปลง
git status

# บันทึกงานพร้อมข้อความที่ชัดเจน
git add .
git commit -m "Add login validation"
คำสั่ง จุดประสงค์
git status ตรวจสถานะไฟล์
git add เตรียมไฟล์เข้า commit
git commit บันทึก snapshot
git branch จัดการสาขา
git merge รวมงาน

กลับรายวิชา