PlusMagi's Blog By Pitt Phunsanit Cloud Computing,Database GIT: Cherry-pick: เก็บเฉพาะลูก

GIT: Cherry-pick: เก็บเฉพาะลูก

ในโลกของการพัฒนาซอฟต์แวร์ด้วย Git การทำงานร่วมกันของทีมขนาดใหญ่มักนำไปสู่การสร้าง Commit จำนวนมากในหลาย Branch การรวมโค้ดทั้งหมดเข้าด้วยกันอาจทำให้เกิดความยุ่งยากและไม่จำเป็นเสมอไป นี่คือจุดที่คำสั่ง git cherry-pick เข้ามามีบทบาท

Cherry-pick คือกลไกที่ช่วยให้คุณสามารถเลือก (Pick) เฉพาะ Commit ที่คุณต้องการจาก Branch หนึ่ง (Source Branch) มานำไปใช้ใน Branch ปัจจุบันของคุณ (Target Branch) โดยที่ไม่ต้องนำประวัติการเปลี่ยนแปลงทั้งหมดของ Branch นั้นมาด้วย เปรียบเสมือนการหยิบ ‘เฌอรี่’ ชิ้นเดียวจากตะกร้าผลไม้ขนาดใหญ่ โดยไม่จำเป็นต้องยกทั้งตะกร้ามาด้วย

💡 ทำไมต้องใช้ Cherry-pick ในโปรเจกต์ PostgreSQL?

แม้ว่าคุณจะทำงานกับฐานข้อมูล PostgreSQL เป็นหลัก แต่การจัดการโค้ดที่เกี่ยวข้องกับ ORM, Stored Procedures, หรือ Schema Migration ก็ยังต้องใช้ Git ในการควบคุมเวอร์ชัน การใช้ Cherry-pick จึงมีประโยชน์อย่างยิ่งในสถานการณ์ต่อไปนี้:

  • การแก้ไข Bug ด่วน (Hotfix): สมมติว่าทีม A ทำการแก้ไข Bug ที่เกี่ยวข้องกับ Type Casting ของ PostgreSQL ใน Branch develop แต่ Bug นี้ส่งผลกระทบต่อ main อย่างร้ายแรง คุณไม่จำเป็นต้องรอให้ทีม A ทำฟีเจอร์อื่นเสร็จ คุณสามารถ Cherry-pick เฉพาะ Commit ที่แก้ไข Bug นั้นเท่านั้น ไปใส่ใน main ได้ทันที
  • การรวมฟีเจอร์บางส่วน: เพื่อนร่วมทีมทำฟีเจอร์ใหญ่ที่ต้องใช้การปรับปรุง Schema ของ PostgreSQL หลายส่วน แต่คุณต้องการใช้แค่ส่วนที่เกี่ยวกับการเพิ่มตาราง (Table) ใหม่ก่อน คุณก็สามารถเลือก Commit นั้นมาใช้ก่อนได้
  • การทดสอบเฉพาะส่วน: คุณต้องการทดสอบการเปลี่ยนแปลงของฟังก์ชัน PostgreSQL ที่เพิ่งถูก Commit โดยเพื่อนร่วมทีม โดยที่ยังไม่พร้อมรวมโค้ดทั้งหมด

⚙️ วิธีการใช้งาน Git Cherry-pick

การใช้งานคำสั่งนี้ต้องทราบ Commit Hash (รหัสประจำตัวของ Commit) ที่ต้องการนำมาใช้ก่อนเสมอ เมื่อคุณอยู่ใน Branch ปลายทาง (Target Branch) แล้ว ให้รันคำสั่งดังนี้:

BASH / Shell

# 1. ตรวจสอบสถานะปัจจุบันและ Branch ปลายทาง (Target Branch) ก่อนเสมอ<br>git checkout main<br><br># 2. ใช้คำสั่ง cherry-pick พร้อมระบุ Commit Hash ที่ต้องการ<br>git cherry-pick <commit-hash>

ตัวอย่างสถานการณ์: สมมติว่า Commit ID a1b2c3d4 คือ Commit ที่แก้ไขปัญหาการ Query ข้อมูลจาก PostgreSQL ที่เคยมีปัญหาเรื่อง Data Type ไม่ตรงกัน คุณสามารถดึงเฉพาะ Commit นั้นมาใช้ใน Branch main ได้เลย:

BASH / Shell

git checkout main<br>git cherry-pick a1b2c3d4

เมื่อคำสั่งทำงานสำเร็จ Git จะทำการสร้าง Commit ใหม่ใน Branch main ที่มีเนื้อหาการเปลี่ยนแปลงเหมือนกับ Commit a1b2c3d4 ทุกประการ ทำให้การทำงานของคุณมีความแม่นยำและลดความเสี่ยงในการรวมโค้ดที่ไม่จำเป็น

✅ บทสรุป: เมื่อไหร่ที่ควรใช้ Cherry-pick?

git cherry-pick เป็นเครื่องมือที่ทรงพลังสำหรับการจัดการ Commit อย่างละเอียด มันช่วยให้คุณสามารถแยกส่วนการเปลี่ยนแปลงที่สำคัญที่สุดออกมาใช้ได้ทันที โดยเฉพาะอย่างยิ่งในงาน Hotfix หรือการรวมฟีเจอร์ที่ยังไม่สมบูรณ์ การใช้งานอย่างถูกวิธีจะช่วยให้ Workflow ของทีมพัฒนาที่ทำงานกับระบบ PostgreSQL มีความรวดเร็วและมีเสถียรภาพสูงยิ่งขึ้น

Exit mobile version