LEVEL 2 · ระดับกลาง
Stash · Cherry-pick · Tag
สามเครื่องมือที่ไม่ได้ใช้ทุกวัน แต่วันที่ต้องใช้มันช่วยได้มาก
9.1 stash — พักงานค้างไว้ชั่วคราว
กำลังแก้อยู่ครึ่งทาง แล้วต้องรีบสลับไปแก้บั๊กด่วนอีก branch? git stash เก็บงานที่ยังไม่ commit เข้าที่พักชั่วคราว คืนโฟลเดอร์ให้สะอาด พอกลับมาก็ git stash pop เอางานออกมาทำต่อ — เหมือนกวาดของบนโต๊ะใส่ลิ้นชักไว้ก่อน แล้วหยิบกลับมาทีหลัง
$ git stash # เก็บงานค้าง โฟลเดอร์กลับมาสะอาด
$ git switch hotfix # ไปทำงานด่วน
$ git stash pop # กลับมาเอางานค้างออกมาทำต่อ9.2 cherry-pick — หยิบ commit เดี่ยวข้าม branch
บางที branch อื่นมี commit ที่เราอยากได้แค่ดวงเดียว ไม่ใช่ทั้ง branch git cherry-pick <commit> ก๊อปการเปลี่ยนแปลงของ commit นั้นมาวางบน branch ปัจจุบัน เช่นดึงเฉพาะ commit แก้บั๊กเร่งด่วนมาใส่ branch release โดยไม่เอาฟีเจอร์ที่ยังไม่เสร็จมาด้วย
9.3 tag — ปักหมุดเวอร์ชันสำคัญ
ขณะที่ branch ขยับไปเรื่อย ๆ tag คือป้ายถาวรที่ปักลง commit หนึ่งแล้วไม่ขยับ ใช้ทำเครื่องหมายเวอร์ชันที่ปล่อยจริง เช่น v1.0.0 มีสองชนิด: lightweight (แค่ชื่อ) และ annotated (มีผู้สร้าง วันที่ ข้อความ — แนะนำสำหรับ release จริง)
$ git tag -a v1.0.0 -m "ปล่อยเวอร์ชันแรก"
$ git push origin v1.0.0 # tag ไม่ถูก push ไปกับ push ปกติ ต้องส่งเอง✅ สรุปบทที่ 9 —
stashพักงานค้างชั่วคราวเพื่อสลับไปทำอย่างอื่น แล้วpopกลับมา ·cherry-pickหยิบ commit เดี่ยวข้าม branch ·tagปักหมุดถาวรลงเวอร์ชันสำคัญ (annotated สำหรับ release) และต้อง push แยกต่างหาก