แผนการเรียนรู้
/

ระบบควบคุมเวอร์ชัน
Git และ GitHub

Version Control • Collaboration • Branching • Commit • Merge

ผลลัพธ์การเรียนรู้

1
อธิบายหลักการของระบบควบคุมเวอร์ชันได้
2
ใช้คำสั่งพื้นฐานของ Git เพื่อจัดการ repository ได้
3
สร้าง branch และรวมโค้ด (merge) ได้อย่างถูกต้อง
4
เชื่อมต่อโครงการกับ GitHub และทำงานร่วมกันแบบออนไลน์ได้
สัปดาห์ที่ 3

ทำไมต้องใช้
Version Control?

เหตุผลสำคัญในการใช้งาน

1
ช่วยติดตามประวัติการแก้ไขโค้ด ทำให้ย้อนกลับไปยังเวอร์ชันก่อนหน้าได้ตลอดเวลา
2
ลดปัญหาการลบไฟล์หรือเขียนทับโดยไม่ตั้งใจ เพราะทุกการเปลี่ยนแปลงถูกบันทึกอย่างเป็นระบบ
3
สนับสนุนการทำงานเป็นทีมอย่างมีประสิทธิภาพ แต่ละคนทำงานใน branch ของตัวเองได้
4
ใช้ร่วมกับ GitHub เพื่อเก็บโค้ดออนไลน์ ทบทวนโค้ด (code review) และจัดการโปรเจกต์ร่วมกัน
Foundations • Safety • Team Productivity • Project Integrity

โครงสร้างการทำงานของ
Git Workflow

ขั้นตอนสำคัญใน Git

1

Working Directory

พื้นที่ที่เราแก้ไขไฟล์โค้ดจริงบนเครื่อง

2

Staging Area

พื้นที่เตรียมไฟล์เพื่อบันทึกการเปลี่ยนแปลง

3

Repository

ที่จัดเก็บประวัติการ commit ทั้งหมดของโปรเจกต์

Working Directory → Staging → Commit → Push

คำสั่งพื้นฐานของ
Git ที่ต้องรู้

เริ่มต้นใช้งาน Git อย่างถูกต้อง

1

git init

สร้าง repository ใหม่ในโฟลเดอร์ปัจจุบัน

2

git add

เพิ่มไฟล์เข้าไปใน Staging Area เพื่อเตรียม commit

3

git commit

บันทึกการเปลี่ยนแปลงลงใน repository พร้อมข้อความอธิบาย

4

git status

ตรวจสอบสถานะไฟล์ต่าง ๆ ในโปรเจกต์ (modified, staged ฯลฯ)

5

git log

ดูประวัติการ commit ทั้งหมดของโปรเจกต์

6

git clone

คัดลอก repository จาก GitHub มายังเครื่องของเรา

init • add • commit • status • log • clone

การทำงานแบบ
Branching & Merging

ทำไมต้องใช้ Branch?

1

แยกงานแต่ละฟีเจอร์ออกจากกัน

ลดปัญหาโค้ดชนกัน ช่วยให้ทีมทำงานพร้อมกันได้

2

ทดลองโค้ดโดยไม่กระทบ main

เหมาะสำหรับงานทดลอง ฟีเจอร์ใหม่ หรือแก้บั๊ก

3

รวมโค้ดกลับเข้ามาอย่างเป็นระบบ

ใช้การ merge เพื่อรวมงานเข้ากับ main branch

4

จัดการ conflict อย่างถูกต้อง

เรียนรู้การแก้ conflict เมื่อมีการแก้ไฟล์เดียวกัน

Feature Branch → Work → Commit → Merge → Main

การทำงานร่วมกับ
GitHub & Remote Repository

บทบาทของ Remote Repository

1

พื้นที่เก็บโค้ดออนไลน์

ช่วยให้ทีมเข้าถึงโปรเจกต์ได้จากทุกที่และร่วมพัฒนาได้ทันที

2

git push

อัปโหลด commit จากเครื่องของเราขึ้น GitHub

3

git pull

ดึงการเปลี่ยนแปลงล่าสุดจาก GitHub ลงมาในเครื่อง

4

git clone

คัดลอกโปรเจกต์ที่อยู่บน GitHub มายังเครื่องของเรา

Local ↔ Remote • push • pull • clone • sync

ตัวอย่างสถานการณ์
Merge Conflict

เกิดขึ้นเมื่อไหร่?

1

แก้ไขไฟล์เดียวกันในตำแหน่งเดียวกัน

เช่น A แก้บรรทัดที่ 10 และ B ก็แก้บรรทัดเดียวกัน

2

Git ไม่รู้ว่าจะเลือกเวอร์ชันไหน

จึงแจ้ง conflict และหยุด merge ไว้ก่อน

3

ผู้ใช้ต้องเลือกเอง

เลือกโค้ดของเรา, ของเพื่อน หรือผสมกันจากทั้งสองด้าน

4

Git จะแทรกสัญลักษณ์พิเศษ

<<<<<<< HEAD
(โค้ดของเรา)
=======
(โค้ดอีกฝั่ง)
>>>>>>> branch-name

Conflict → Review → Edit → Stage → Commit → Merge Complete

GitHub Workflow
Fork → Commit → Pull Request

ขั้นตอนการร่วมพัฒนาบน GitHub

1

Fork Repository

คัดลอกโปรเจกต์ของผู้อื่นมาที่บัญชีของเรา เพื่อแก้ไขโดยไม่กระทบของต้นฉบับ

2

Clone ลงเครื่อง

ดาวน์โหลด repo ที่ fork มาเพื่อลงมือพัฒนา

3

Commit การแก้ไข

บันทึกการเปลี่ยนแปลง พร้อมข้อความอธิบายแบบชัดเจน

4

เปิด Pull Request (PR)

เสนอให้เจ้าของ repo ต้นฉบับตรวจสอบการแก้ไข และรวมโค้ดของเรากลับเข้าโปรเจกต์หลัก

Fork → Work → Commit → Push → PR → Review → Merge

สรุปเนื้อหา
Version Control (Git & GitHub)

สิ่งที่คุณเรียนรู้ในสัปดาห์นี้

1

หลักการของ Version Control

เข้าใจว่าทำไม Git คือเครื่องมือสำคัญของนักพัฒนา

2

Git Workflow

Working Directory → Staging → Commit → Push

3

คำสั่งพื้นฐานที่ต้องรู้

init • add • commit • status • log • clone

4

Branching & Merging

สร้างฟีเจอร์อย่างอิสระ รวมโค้ดได้อย่างถูกต้อง

5

Remote Repository & GitHub

push • pull • sync โปรเจกต์กับทีมได้แบบออนไลน์

6

Workflow การร่วมพัฒนา

Fork → Commit → Pull Request → Review → Merge

พร้อมเข้าสู่สัปดาห์ถัดไป: การพัฒนาโปรเจกต์ด้วยเครื่องมือ Data Science