• ติดตามบน
เรียนรู้ Git Workflow: ทำงานเป็นทีมอย่างมืออาชีพ

เรียนรู้ Git Workflow: ทำงานเป็นทีมอย่างมืออาชีพ

Chalothorn Kosakul 05-02-2026 76

เข้าใจ Branch, Pull Request และ Merge Conflict แบบง่าย ๆ

การเขียนโปรแกรมในโลกจริงไม่ใช่งานที่ทำคนเดียว แต่เป็นการทำงานร่วมกันเป็นทีม Git จึงเป็นเครื่องมือสำคัญที่ช่วยให้หลายคนสามารถแก้ไขโค้ดพร้อมกันได้อย่างเป็นระบบ บทความนี้จะพานักเรียนทำความเข้าใจ 3 เรื่องหลัก ได้แก่ การใช้ Branch, การเปิด Pull Request และการแก้ปัญหา Merge Conflict

  1. การใช้ Branch
  2. การเปิด Pull Request
  3. การแก้ Merge Conflict
ตัวอย่างด้านล่างเป็นเพียง “สถานการณ์สมมติ” เพื่อการเรียนรู้ ไม่ใช่คำตอบของใบงานนักเรียน

1) การทำงานด้วย Branch

ในการพัฒนาโปรแกรม ไม่ควรแก้ไขโค้ดบน main โดยตรง แต่ควรสร้างพื้นที่ทำงานของตนเองผ่าน Branch เพื่อป้องกันความผิดพลาดและให้สามารถทำงานคู่ขนานกับเพื่อนได้

ตัวอย่างการสร้าง Branch

git checkout -b feature/profile-page

จากนั้นสร้างไฟล์ตัวอย่างชื่อ profile.txt

My Profile 
I like coding 
I study at school 
I learn Git 
Nice to meet you

เมื่อแก้ไขเสร็จให้บันทึกงานด้วยคำสั่ง

git add profile.txt 
git commit -m "create profile page draft" 
git push -u origin feature/profile-page

2) Pull Request คืออะไร

Pull Request เปรียบเสมือนการส่งงานให้เพื่อนหรือครูช่วยตรวจสอบ ก่อนที่จะนำไปรวมกับงานหลัก

“การส่งการบ้านให้ครูตรวจก่อนรวมเข้างานหลัก”

ข้อดีของ Pull Request

  • เพื่อนช่วยตรวจโค้ดได้
  • ป้องกันโค้ดที่ผิดพลาดเข้าสู่ระบบหลัก
  • เห็นประวัติการแก้ไขอย่างชัดเจน

ขั้นตอนทั่วไป

  1. push branch ของเรา
  2. เข้า GitHub
  3. กด New Pull Request
  4. เลือก branch ของเราไปยัง main
  5. ใส่คำอธิบายงาน

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

ในการทำงานเป็นทีม สิ่งที่พบได้บ่อยมากคือ Merge Conflict ซึ่งเกิดจากการที่หลายคนแก้ไขไฟล์เดียวกันพร้อมกัน Git จึงต้องให้ผู้ใช้ตัดสินใจเลือกผลลัพธ์ที่ถูกต้องด้วยตนเอง

ตัวอย่างนี้เป็นเพียงสถานการณ์จำลอง เพื่อให้นักเรียนเข้าใจแนวคิดการแก้ปัญหา

ทำไม Conflict ถึงเกิดขึ้น

  • มีผู้แก้ไขมากกว่า 1 คน
  • แก้ไฟล์เดียวกัน
  • แก้บรรทัดเดียวกัน
  • ยังไม่ได้ดึงงานล่าสุดก่อน

เมื่อเกิดเหตุการณ์นี้ Git จะไม่ตัดสินใจแทน แต่ให้ผู้ใช้เป็นผู้เลือกวิธีรวมโค้ด


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

สมมติว่ามีนักเรียน 2 คนแก้ไฟล์ README.md พร้อมกัน

Message from Student A
Message from Student B

เมื่อคนที่สองพยายาม push จะพบข้อความลักษณะนี้

! [rejected] main -> main (fetch first) 
error: failed to push some refs

นี่คือสัญญาณว่าจำเป็นต้อง pull งานล่าสุดก่อน


ขั้นตอนการแก้ปัญหา

1) ดึงโค้ดล่าสุด

git pull origin main

Git จะแจ้งว่ามี conflict ที่ไฟล์ README.md

2) เปิดไฟล์ที่มีปัญหา

<<<<<<< HEAD 
Message from Student B 
======= 
Message from Student A 
>>>>>>> 7ac91d

ความหมายคือ

  • ส่วนบน = เวอร์ชันของเรา

  • ส่วนล่าง = เวอร์ชันจากเพื่อน

3) แก้ไขผลลัพธ์

Message from Student A and Student B

จากนั้นลบเครื่องหมายพิเศษออกทั้งหมด

4) บันทึกหลังแก้

git add README.md 
git commit -m "combine messages from both students" 
git push origin main

เพียงเท่านี้ conflict ก็จะถูกแก้ไขเรียบร้อย


สิ่งที่นักเรียนควรสังเกต

  1. Conflict เป็นกลไกป้องกันข้อมูลทับกัน ไม่ใช่ข้อผิดพลาดร้ายแรง
  2. การแก้ต้องอ่านโค้ดให้เข้าใจ ไม่ควรลบแบบสุ่ม
  3. ลำดับสำคัญคือ pull → แก้ → add → commit → push

เทคนิคทำงานเป็นทีม

  • พูดคุยกันก่อนแก้ไฟล์เดียวกัน
  • pull ทุกครั้งก่อนเริ่มงาน
  • เขียน commit message ให้สื่อความหมาย
  • แก้งานทีละส่วนเล็ก ๆ

หลักฐานที่ควรบันทึกในการเรียน

  1. ภาพหน้าจอ error ตอน push ไม่ผ่าน
  2. ภาพไฟล์ขณะเห็นเครื่องหมาย conflict
  3. ภาพหลังแก้ไขสำเร็จ
  4. คำสั่งที่ใช้แก้ปัญหา

หลักฐานเหล่านี้คือแนวทางเดียวกับที่นักพัฒนาซอฟต์แวร์ใช้ในการทำงานจริง


แชร์บทความนี้