ศูนย์รวมความรู้วิศวกรรมซอฟต์แวร์

แบ่งปันประสบการณ์การออกแบบสถาปัตยกรรมระบบ, การเขียนโค้ดด้วย Laravel และการจัดการ Server ระดับ Production เพื่อยกระดับทักษะของนักพัฒนาทุกคน

คู่มือ Git Workflow ประจำวันสำหรับวิศวกรซอฟต์แวร์มืออาชีพ

(Daily Git Workflow for Software Engineers)


การบริหารจัดการซอร์สโค้ด (Source Code) อย่างมีประสิทธิภาพและเป็นระบบ ถือเป็นหนึ่งในทักษะสำคัญของการทำงานในทีมพัฒนาระดับสากล คู่มือฉบับนี้รวบรวมขั้นตอนปฏิบัติประจำวัน (Daily Workflow) ในการใช้ Git และ GitHub เพื่อช่วยลดโอกาสเกิดข้อผิดพลาด รักษาประวัติโค้ดให้สะอาด และป้องกันปัญหาโค้ดชนกัน (Merge Conflict) อย่างเป็นรูปธรรม

กฎเหล็ก 3 ข้อเพื่อความปลอดภัยของระบบ 
  1. สาขาหลัก (Main Branch) คือเขตปลอดภัยสูงสุด: โค้ดที่อยู่บน main หรือ uat ต้องเป็นโค้ดที่ผ่านการทดสอบ เสถียร และพร้อมใช้งาน 100% เสมอ ห้ามเขียนโค้ดแก้ไขงานลงบนกิ่งหลักเหล่านี้โดยตรงเด็ดขาด 
  2. ดึงโค้ดจากกิ่งกลางเท่านั้น: หลีกเลี่ยงการรวม (Merge) โค้ดข้ามจากสาขาส่วนตัวของเพื่อนร่วมงานโดยตรง เพื่อป้องกันโค้ดดิบหรือบั๊กที่ยังแก้ไขไม่เสร็จ และเพื่อให้มั่นใจว่าซอร์สโค้ดทุกชุดผ่านด่านตรวจร่วมของทีมแล้ว 
  3. แยกหนึ่งฟังก์ชัน ต่อหนึ่งสาขา (1 Feature = 1 Branch): เมื่อเริ่มงานใหม่ให้สร้างสาขาย่อยแยกออกไปทำงานเสมอ เพื่อตัดขาดความเสี่ยงไม่ให้โค้ดที่อยู่ระหว่างพัฒนาไปกระทบกับระบบหลัก 
ขั้นตอนปฏิบัติงาน Git ประจำวัน (Daily Step-by-Step)
เฟสที่ 1: เริ่มงานช่วงเช้า (Daily Check-in & Sync)
ก่อนเริ่มจับคีย์บอร์ดเขียนโค้ดสำหรับฟังก์ชันใหม่ สิ่งแรกที่ต้องทำคือการปรับปรุงสภาพแวดล้อมในเครื่องตนเอง (Local) ให้เป็นปัจจุบันเท่ากับระบบส่วนกลางบน GitHub
   1. สลับไปที่สาขาหลักของโปรเจกต์ เพื่อเตรียมดึงข้อมูลล่าสุด 
       git checkout main
   2. ดึงซอร์สโค้ดล่าสุด (Pull) จากเซิร์ฟเวอร์ส่วนกลางลงมาอัปเดต 
       git pull origin main 
   3. สร้างและสลับเข้าสู่สาขาใหม่ (Feature Branch) เพื่อเริ่มทำงานประจำวันทันที โดยตั้งชื่อให้สื่อความหมายและกระชับ (แนะนำให้ใช้รูปแบบ feat/ สำหรับฟังก์ชันใหม่ หรือ refactor/ สำหรับการปรับปรุงโค้ดเดิม) 
       git checkout -b refactor/remove-rmqc-filters 
เฟสที่ 2: ระหว่างวัน (Handling Live Updates) 
   1. ฝากโค้ดที่ทำค้างไว้เข้าตู้เซฟชั่วคราว เพื่อคืนพื้นที่หน้าจอให้สะอาด
      git stash
   2. สลับไปกิ่งหลักและดึงอัปเดตใหม่ล่าสุดของทีมลงมา
      git checkout main
      git pull origin main
   3. ย้ายกลับมาที่สาขางานปัจจุบันของตนเอง
     git checkout refactor/remove-rmqc-filters
   4. สั่งรวมร่างโค้ดล่าสุดของทีมเข้าสู่สาขางานของเรา
      git merge main
   5. เปิดตู้เซฟนำโค้ดที่ทำค้างไว้เมื่อครู่กลับมาพัฒนาต่อ
      git stash pop
(หมายเหตุ: ในขั้นตอนการนำโค้ดกลับมา หากพบแถบสีแจ้งเตือนกรณีโค้ดชนกัน (Merge Conflict) ให้ตรวจสอบความถูกต้องผ่านโปรแกรมแก้ไขโค้ด เช่น VS Code เลือกส่วนโค้ดที่สมบูรณ์ บันทึกไฟล์ให้เรียบร้อย แล้วลงมือทำงานต่อได้ทันที)
เฟสที่ 3: สิ้นสุดวันทำงาน (Deliver & Push) 
เมื่อพัฒนาฟังก์ชันประจำวันเสร็จสิ้นและผ่านการทดสอบระบบภายในเครื่องแล้ว ให้ทำความสะอาด จัดเก็บประวัติ และส่งมอบงานขึ้นสู่ระบบส่วนกลาง 
   1. ตรวจสอบสถานะไฟล์ เพื่อดูความเปลี่ยนแปลงทั้งหมดของวันนี้ 
      git status 
   2. เลือกไฟล์ทั้งหมด เข้าสู่สถานะเตรียมจัดเก็บ 
      git add . 
   3. บันทึกประวัติการแก้ไข (Commit) พร้อมเขียนอธิบายสั้นๆ ว่ากิ่งนี้ทำหน้าที่ปรับปรุงส่วนใด 
      git commit -m "refactor: remove fiscal year and pt plan filters from rmqc view"
   4. ผลักโค้ดขึ้นระบบส่วนกลาง (Push) เพื่อสำรองข้อมูลและเตรียมส่งมอบ
      git push origin refactor/remove-rmqc-filters

ขั้นตอนสุดท้ายบน GitHub (Pull Request) 
  • หลังจากทำการ Push โค้ดเรียบร้อย ให้เปิดหน้าต่างคลังจัดเก็บซอร์สโค้ดบนเว็บไซต์ GitHub คุณจะพบปุ่มสีเขียวเด่นชัดระบุว่า Compare & pull request
  • ให้กดปุ่มดังกล่าว ตรวจสอบความเรียบร้อยของโค้ด พร้อมเขียนรายละเอียดเงื่อนไขสรุปสั้นๆ ให้แก่ทีมตรวจสอบ จากนั้นคลิก Create pull request เมื่อระบบผ่านการตรวจสอบ (Code Review) และทดสอบความปลอดภัยแล้ว จึงจะใช้ตัวเลือกการรวมโค้ดในรูปแบบ Squash and merge เพื่อมัดรวมประวัติย่อยๆ ให้เป็นระเบียบเรียบร้อยก่อนผสานเข้าสู่กิ่งหลักอย่างเป็นทางการ
  • การปฏิบัติตามมาตรฐาน Git Workflow นี้เป็นประจำทุกวัน จะช่วยเพิ่มประสิทธิภาพในการส่งมอบซอฟต์แวร์ ลดความเสี่ยงระบบล่ม และสร้างเสริมวินัยการทำงานที่มีมาตรฐานเทียบเท่าระดับสากล


github