Git worktree: วิธีทำงานบน git แบบหลายๆ branch พร้อมกัน
พอพูดถึง git เราก็จะมี command ที่ใช้กันบ่อยๆ จนคุ้นชินเช่น commit, push, pull, merge, etc., แต่ git worktree เป็นหนึ่งใน command ที่ไม่ค่อยเห็นคนใช้กันสักเท่าไหร่ จริงๆ ผมว่ามันมีประโยชน์แล้วก็สะดวกมาก วันนี้เรามาลองใช้งานกันครับ Problem Statement เคยไหมครับเวลาที่เราทำงานบนเครื่องของเรา ทำไปสักพักมีเหตุให้ต้องเปลี่ยนไป checkout ไปที่ commit หรือ branch อื่นๆ ยกตัวอย่างที่ผมเจอบ่อยๆ เช่น อาจจะมี Pull Request ที่ขอให้เราช่วยรีวิว ซึ่งบางครั้งเราจำเป็นที่จะต้อง checkout code มาดูในเครื่องเราเองเพื่อลอง run ดู แต่งานที่เราทำอยู่ หรือ file ที่เราแก้บนเครื่องเราที่ยังไม่ได้ commit ล่ะครับ เราจะทำยังไง? 🧐 ถ้าเกิดเจอเหตุการณ์แบบนี้เราอาจจะต้องทำการ git clone ไปอีก directory แล้วค่อย checkout ไปยัง branch นั้น หรืออีกท่าที่ง่ายกว่าคืออาจจะทำ git stash เพื่อเก็บ changes ที่เราทำไว้ชั่วคราวแล้วค่อย git stash pop เพื่อค่อยมาทำต่อจากที่ค้างไว้ ซึ่งวิธีนี้ก็น่าจะแก้ปัญหาที่เรามีได้แล้ว แต่วันนี้ผมจะมาแนะนำท่าที่ส่วนตัวผมคิดว่า elegant กว่า :) ด้วยการใช้ git worktree...