คู่มือ Git Workflow ประจำวันสำหรับวิศวกรซอฟต์แวร์มืออาชีพ
(Daily Git Workflow for Software Engineers)
การบริหารจัดการซอร์สโค้ด (Source Code) อย่างมีประสิทธิภาพและเป็นระบบ ถือเป็นหนึ่งในทักษะสำคัญของการทำงานในทีมพัฒนาระดับสากล คู่มือฉบับนี้รวบรวมขั้นตอนปฏิบัติประจำวัน (Daily Workflow) ในการใช้ Git และ GitHub เพื่อช่วยลดโอกาสเกิดข้อผิดพลาด รักษาประวัติโค้ดให้สะอาด และป้องกันปัญหาโค้ดชนกัน (Merge Conflict) อย่างเป็นรูปธรรม
กฎเหล็ก 3 ข้อเพื่อความปลอดภัยของระบบ
กฎเหล็ก 3 ข้อเพื่อความปลอดภัยของระบบ
- สาขาหลัก (Main Branch) คือเขตปลอดภัยสูงสุด: โค้ดที่อยู่บน main หรือ uat ต้องเป็นโค้ดที่ผ่านการทดสอบ เสถียร และพร้อมใช้งาน 100% เสมอ ห้ามเขียนโค้ดแก้ไขงานลงบนกิ่งหลักเหล่านี้โดยตรงเด็ดขาด
- ดึงโค้ดจากกิ่งกลางเท่านั้น: หลีกเลี่ยงการรวม (Merge) โค้ดข้ามจากสาขาส่วนตัวของเพื่อนร่วมงานโดยตรง เพื่อป้องกันโค้ดดิบหรือบั๊กที่ยังแก้ไขไม่เสร็จ และเพื่อให้มั่นใจว่าซอร์สโค้ดทุกชุดผ่านด่านตรวจร่วมของทีมแล้ว
- แยกหนึ่งฟังก์ชัน ต่อหนึ่งสาขา (1 Feature = 1 Branch): เมื่อเริ่มงานใหม่ให้สร้างสาขาย่อยแยกออกไปทำงานเสมอ เพื่อตัดขาดความเสี่ยงไม่ให้โค้ดที่อยู่ระหว่างพัฒนาไปกระทบกับระบบหลัก
ขั้นตอนปฏิบัติงาน Git ประจำวัน (Daily Step-by-Step)
เฟสที่ 1: เริ่มงานช่วงเช้า (Daily Check-in & Sync)
ก่อนเริ่มจับคีย์บอร์ดเขียนโค้ดสำหรับฟังก์ชันใหม่ สิ่งแรกที่ต้องทำคือการปรับปรุงสภาพแวดล้อมในเครื่องตนเอง (Local) ให้เป็นปัจจุบันเท่ากับระบบส่วนกลางบน GitHub
เฟสที่ 1: เริ่มงานช่วงเช้า (Daily Check-in & Sync)
ก่อนเริ่มจับคีย์บอร์ดเขียนโค้ดสำหรับฟังก์ชันใหม่ สิ่งแรกที่ต้องทำคือการปรับปรุงสภาพแวดล้อมในเครื่องตนเอง (Local) ให้เป็นปัจจุบันเท่ากับระบบส่วนกลางบน GitHub
1. สลับไปที่สาขาหลักของโปรเจกต์ เพื่อเตรียมดึงข้อมูลล่าสุด
git checkout main
git checkout main
2. ดึงซอร์สโค้ดล่าสุด (Pull) จากเซิร์ฟเวอร์ส่วนกลางลงมาอัปเดต
git pull origin main
3. สร้างและสลับเข้าสู่สาขาใหม่ (Feature Branch) เพื่อเริ่มทำงานประจำวันทันที โดยตั้งชื่อให้สื่อความหมายและกระชับ (แนะนำให้ใช้รูปแบบ feat/ สำหรับฟังก์ชันใหม่ หรือ refactor/ สำหรับการปรับปรุงโค้ดเดิม)
git checkout -b refactor/remove-rmqc-filters
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)
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