# 5 Advance GIT Command ที่โปรแกรมเมอร์ควรรู้
ในโลกแห่งการพัฒนาซอฟต์แวร์, GIT ได้กลายเป็นเครื่องมือที่ไม่อาจขาดได้สำหรับนักพัฒนา ทำให้การทำความเข้าใจกับคำสั่ง GIT เป็นสิ่งสำคัญอย่างยิ่ง ซึ่งหลายคนอาจจะคุ้นเคยกับคำสั่งพื้นฐานอย่าง `git clone`, `git pull`, หรือ `git commit` แต่สำหรับคำสั่งขั้นสูงที่จะนำเสนอต่อไปนี้ พวกเขาอาจจะช่วยให้คุณจัดการกับโค้ดและโปรเจคของคุณได้ดียิ่งขึ้น และขจัดปัญหาที่อาจเกิดขึ้นเมื่อทำงานร่วมกับทีม
คำสั่งนี้ใช้สำหรับการเลือก commit ที่ต้องการจาก branch หนึ่งแล้วนำมาใส่ใน branch ที่กำลังทำงานอยู่ ซึ่งเป็นเรื่องที่มีประโยชน์มากเมื่อต้องการเพียงเฉพาะการเปลี่ยนแปลงหรือฟีเจอร์บางอย่างจาก branch หนึ่งโดยไม่ต้องรวมทั้ง branch
git cherry-pick
Rebase คือการสร้าง copies ของ commits ใน branch หนึ่งแล้วนำมาปรับใช้ใหม่กับ `HEAD` ของ branch ที่กำลังทำงานอยู่ การใช้ `-i` หรือ `--interactive` ทำให้เราสามารถเลือก commits ที่ต้องการเป็นอย่างดี รวมถึงการแก้ไข commit messages, ลบ commits ออก, หรือแม้แต่ทำการ squash (รวม) หลาย ๆ commits เข้าด้วยกัน
git rebase -i /
หากคุณพบปัญหาในโค้ดและต้องการทราบว่าที่ต้นเหตุเหล่านั้นเกิดขึ้นจาก commit ไหน, `git bisect` ช่วยคุณหา commit ที่ทำให้เกิดปัญหาได้ คำสั่งนี้จะใช้การค้นหาแบบ binary search เพื่อช่วยหา commit ที่ทำให้เกิดปัญหาในเวลาอันสั้น
git bisect start
git bisect bad # ทำเครื่องหมายว่า commit นี้มีปัญหา
git bisect good # กำหนด commit ที่คิดว่าปราศจากปัญหา
# Git จะทำการ checkout ไปยัง commits ที่ถูกสงสัยตามลำดับขั้นตอนที่จำเป็นจนกว่าจะพบปัญหา
git bisect reset # กลับสู่ขั้นตอนทำงานปกติเมื่อหา commit ที่ทำให้เกิดปัญหาได้แล้ว
ใช้สำหรับเห็นประวัติย้อนหลังที่ไม่อาจเห็นได้จาก `git log` ปกติ อาจรวมถึงการติดตามหา commits ที่หายไปหลังจากการ rebase ที่ผิดพลาด หรือติดตามการเปลี่ยนแปลงใน HEAD
git reflog
`git stash` ใช้เก็บการเปลี่ยนแปลงที่ยังไม่ได้ commit ไว้ชั่วคราวเมื่อคุณต้องการมีสถานะ working directory ที่สะอาดเพื่อทำภารกิจอื่น เช่น การเปลี่ยน branches หรือการดึง code ใหม่ การใช้ `apply` จะนำการเปลี่ยนแปลงที่ถูกเก็บไว้กลับมา ในขณะที่ `drop` จะลบ stash นั้นๆ ออก
git stash apply # นำการเปลี่ยนแปลงกลับมาจาก stash
git stash drop # ลบ stash ที่ไม่ต้องการออก
การใช้งานคำสั่ง GIT ขั้นสูงเหล่านี้จะช่วยให้คุณสามารถแก้ไขปัญหาและจัดการกับโปรเจคของคุณได้มีประสิทธิภาพยิ่งขึ้น ระหว่างทางอาจพบกับความท้าทายบ้าง แต่ก็เป็นส่วนหนึ่งของทักษะการเป็นนักพัฒนาที่ไม่หยุดเรียนรู้และปรับปรุงตนเอง
นอกจากนี้การศึกษาและปรับปรุงทักษะด้าน GIT ก็เป็นส่วนหนึ่งในหลากหลายหลักสูตรที่ EPT ซึ่งเป็นทางเลือกที่ยอดเยี่ยม หากคุณต้องการเริ่มต้นหรือพัฒนาทักษะการเขียนโปรแกรมของคุณให้ก้าวไปอีกขั้น ไม่ว่าคุณจะเป็นมือใหม่หรือมืออาชีพ เราก็พร้อมจะเดินทางไปกับคุณในโลกแห่งการเขียนโค้ดให้เป็นเรื่องที่สนุกและน่าตื่นเต้นไปด้วยกัน!
หมายเหตุ: ข้อมูลในบทความนี้อาจจะผิด โปรดตรวจสอบความถูกต้องของบทความอีกครั้งหนึ่ง บทความนี้ไม่สามารถนำไปใช้อ้างอิงใด ๆ ได้ ทาง EPT ไม่ขอยืนยันความถูกต้อง และไม่ขอรับผิดชอบต่อความเสียหายใดที่เกิดจากบทความชุดนี้ทั้งทางทรัพย์สิน ร่างกาย หรือจิตใจของผู้อ่านและผู้เกี่ยวข้อง
หากเจอข้อผิดพลาด หรือต้องการพูดคุย ติดต่อได้ที่ https://m.me/expert.Programming.Tutor/
Tag ที่น่าสนใจ: git programming version_control cherry-pick rebase bisect reflog stash commit branch code_management software_development advanced_commands source_control developer_tools
หากมีข้อผิดพลาด/ต้องการพูดคุยเพิ่มเติมเกี่ยวกับบทความนี้ กรุณาแจ้งที่ http://m.me/Expert.Programming.Tutor
085-350-7540 (DTAC)
084-88-00-255 (AIS)
026-111-618
หรือทาง EMAIL: NTPRINTF@GMAIL.COM
Copyright (c) 2013 expert-programming-tutor.com. All rights reserved. | 085-350-7540 | 084-88-00-255 | ntprintf@gmail.com