20 Git Command-Line Tricks Every Developer Should Know

01-Nov-24

คัมภีร์เทพ IT

See the original english version Click here!

 

Developers ส่วนใหญ่มักใช้ Git กันแทบทุกวัน แต่หลายคนอาจรู้เพียงแค่พื้นฐานเท่านั้น ทั้งที่จริงแล้ว Git สามารถทำอะไรได้มากกว่านั้น การเรียนรู้ทริคเล็ก ๆ น้อย ๆ ของคำสั่ง Git ผ่าน Command Line อาจเปลี่ยนประสบการณ์การทำงานของคุณได้โดยสิ้นเชิง และบทความนี้ก็เป็น 20 การใช้คำสั่ง Git ที่ Developer ควรรู้ไว้

1. Interactive Add

คำสั่งนี้จะช่วยให้คุณเลือก Stage เฉพาะบางส่วนของ File แทนที่จะต้องเพิ่มทั้ง File มันเหมาะอย่างยิ่งในกรณีที่คุณต้องการ Commit การเปลี่ยนแปลงแค่บางส่วน โดยปล่อยส่วนที่เหลือไว้ทำทีหลัง

วิธีใช้:

ข้อดี:

คุณสามารถควบคุมสิ่งที่ต้องการ Commit ได้ละเอียดยิ่งขึ้น ทำให้สามารถ Commit ได้เฉพาะเจาะจงมากขึ้น

เคล็ดลับ:

ใช้คำสั่งนี้กรณีที่คุณทำหลาย Features ใน File เดียว แต่แยก Commit แต่ละส่วนออกจากกัน

2. Undo การ Commit ล่าสุด

ถ้าคุณเพิ่ง Commit แล้วเกิดพลาดขึ้นมา ก็ไม่ต้องกังวลไป เพราะคำสั่งนี้จะช่วยให้คุณสามารถ Undo การ Commit ล่าสุดได้ แต่ยังคงเก็บการเปลี่ยนแปลงไว้ใน Working Directory ทำให้สามารถแก้ไขและ Commit ใหม่ได้ง่าย

วิธีใช้:

ข้อดี:

มันเหมือนเครื่องย้อนเวลา เพราะไม่ต้องสุญเสียงานที่คุณทำไป คุณเพียงแค่แก้ไขแล้ว Commit ใหม่

เคล็ดลับ:

ใช้ --soft ถ้าต้องการเก็บการเปลี่ยนแปลงไว้ หรือ --hard ถ้าต้องการ Undo ทุกอย่างรวมถึงการเปลี่ยนแปลงในเครื่องของคุณด้วย

3. ตรวจสอบ Upstream Status ของ Branch ของคุณ

คำสั่งนี้จะ Fetch Updates จาก Remote และลบ Branch ที่ถูกลบจาก Remote ออกจากเครื่องของคุณ

วิธีใช้:

ข้อดี:

มันช่วยให้ Environment ในเครื่องยังคง Clean และ Update อยู่เสมอ โดยที่ไม่ต้องลบ Branch เก่าด้วยตัวเอง

เคล็ดลับ:

Run คำสั่งนี้เป็นประจำ เพื่อลดความยุ่งเหยิงใน Branch List โดยเฉพาะเมื่อต้องทำงานเป็นทีมใหญ่

4. แก้ไข Commit อย่างรวดเร็ว

คุณเคยลืมเพิ่ม File หรือเคยพิมพ์ผิดใน Commit Message บ้างหรือไม่ git commit --amend จะช่วยให้คุณสามารถ แก้ไข Commit ล่าสุดได้โดยที่ไม่ต้องสร้าง Commit ใหม่

วิธีใช้:

ข้อดี:

คุณสามารถแก้ไขข้อผิดพลาดได้ทันที โดยที่ไม่ทำให้ Commit History ดูยุ่งเหยิง

เคล็ดลับ:

มันเหมาะสำหรับการแก้ไขข้อผิดพลาดเล็ก ๆ น้อย ๆ โดยที่ไม่ทำให้ Git Log ของคุณเต็มไปด้วย Commit ที่ไม่จำเป็น

5. เก็บงานไว้ชั่วคราว

หากต้องเปลี่ยน Branch แต่ไม่อยากเสียการเปลี่ยนแปลงปัจจุบันไป คุณสามารถใช้คำสั่ง Stash เพื่อเก็บงานไว้ชั่วคราวโดยไม่ต้อง Commit ซึ่งทำให้คุณกลับมาทำงานต่อในภายหลังได้

วิธีใช้:

ข้อดี:

มันเหมือนการกด “หยุดชั่วคราว” โดยไม่ทำให้ Commit History ของคุณดูยุ่งเหยิง

เคล็ดลับ:

ใช้ git stash save "description" เพื่อเพิ่มคำอธิบาย ซึ่งจะทำให้คุณสามารถระบุถึงงานที่ถูกเก็บไว้ได้ในภายหลัง

6. ดึงงานที่ถูกเก็บไว้ชั่วคราวออกมา

เมื่อคุณพร้อมในการกลับไปทำงานที่ถูกเก็บไว้ชั่วคราว คุณสามารถใช้คำสั่งนี้เพื่อดึงงานนั้น กลับมายัง Working Directory ได้

วิธีใช้:

ข้อดี:

มันจะคืนค่าการเปลี่ยนแปลงของคุณ และลบออกจาก Stash เพื่อทำให้ทุกอย่างเป็นระเบียบ

เคล็ดลับ:

คุณสามารถใช้คำสั่ง git stash apply หากต้องการดึงงานมาใช้ แต่ยังคงเก็บงานนั้นไว้ใน Stash

7. Cherry-Picking Commits

หากคุณเคยต้องการ Commit บางอย่างจาก Branch อื่น คำสั่งนี้จะช่วยให้คุณนำ Commit นั้นมาใช้ได้โดยที่ไม่ต้อง Merge ทั้ง Branch

วิธีใช้:

ข้อดี:

ให้ความยืดหยุ่นในการนำ Features หรือการแก้ไขบางอย่างมาใช้ โดยที่ไม่ต้อง Merge ทุกการเปลี่ยนแปลง

เคล็ดลับ:

มันเหมาะสำหรับดึงการแก้ Bug หรือ Features เล็ก ๆ จาก Branch อื่น

8. ล้าง Branch ในเครื่อง

เมื่อคุณทำงานทุกอย่างเสร็จแล้ว ก็ควรลบ Branch ที่ไม่ได้ใช้ เพื่อไม่ให้มันดูรกและยุ่งเหยิง

วิธีใช้:

ข้อดี:

มันช่วยให้คุณ Focus กับงานที่สำคัญได้ โดยที่ไม่มีสิ่งรบกวน

เคล็ดลับ:

คุณสามารถใช้ git branch -D <branch-name> หากต้องการลบ Branch ที่ยังไม่ได้ถูก Merge

9. การดู File History

คุณสามารถ Track ความเป็นไปของ File ด้วย git log -- <file> เพื่อดู Commit ทั้งหมดที่ส่งผลต่อ File นั้น

วิธีใช้:

ข้อดี:

มันมีประโยชน์ในการเข้าใจว่า ทำไมถึงมีการเปลี่ยนแปลงบางอย่างขึ้น โดยเฉพาะใน Projects ที่ทำงานร่วมกัน

เคล็ดลับ:

เพิ่ม --stat เพื่อดูรายละเอียดการเปลี่ยนแปลงเพิ่มเติม

10. ตรวจสอบผู้ที่เขียน Code แต่ละบรรทัด

หากคุณอยากรู้ว่า ใครเป็นผู้เขียน Code บรรทัดไหนบ้าง คุณสามารถใช้ git blame เพื่อดูประวัติแบบบรรทัดต่อบรรทัด

วิธีใช้:

ข้อดี:

มันเหมาะสำหรับการตามหาผู้เขียนและเวลาที่มีการแก้ไข Code เพื่อช่วย Debug ปัญหา

เคล็ดลับ:

สามารถใช้ร่วมกับ git log -- <file> เพื่อดูประวัติการเปลี่ยนแปลงเพิ่มเติม

11. หาต้นตอของ Bug

คำสั่งนี้ใช้การค้นหาแบบ Binary Search ใน Commit History เพื่อตามหา Commit ที่ทำให้เกิด Bug ขึ้น

วิธีใช้:

ข้อดี:

มันเหมือนกับโหมดนักสืบของ Git ซึ่งเหมาะอย่างยิ่งสำหรับการระบุว่า Bug เกิดขึ้นที่ใด โดยที่ไม่ต้องตรวจสอบการ Commit แต่ละครั้งด้วยตนเอง

เคล็ดลับ:

มันเหมาะสำหรับ Projects ซับซ้อนที่คุณไม่สามารถระบุได้ง่าย ๆ ว่ามีปัญหาเมื่อใด

12. ยกเลิกการ Merge

หากคุณต้องการ Merge แต่ไม่เป็นไปตามแผน คำสั่งนี้จะยกเลิกการ Merge และนำคุณกลับไปยัง State ก่อนหน้า

วิธีใช้:

ข้อดี:

มันเป็นทางออกที่รวดเร็วจากสถานการณ์ที่ยุ่งยาก และช่วยให้คุณสามารถเริ่มต้นใหม่ได้อีกครั้ง

เคล็ดลับ:

ตรวจสอบให้แน่ใจว่า Working Directory ของคุณ Clean ก่อนที่จะทำการ Merge

13. ค้นหา Commit Messages

คุณกำลังหา Commit Messages ที่ต้องการอยู่ บ้างหรือไม่? คุณสามารถใช้คำสั่ง git log --grep เพื่อตรวจหา Commit Messages ได้

วิธีใช้:

ข้อดี:

ช่วยให้คุณค้นหา Commit ได้เร็วขึ้นในกรณีที่คุณจำ Keywords ใน Commit Message ได้ แต่จำ Commit Hash ไม่ได้

เคล็ดลับ:

ลองใช้ร่วมกับ git log --author เพื่อหาการแก้ไขที่ทำโดย Developers คนใดคนหนึ่ง

14. การสร้าง Tag ให้กับ Commit

Tags จะช่วยระบุจุดสำคัญใน Git History ของคุณ เช่น Releases ที่ปล่อยออกมา

วิธีใช้:

ข้อดี:

มันจะช่วยให้คุณ Track จุดสำคัญและย้อนกลับไปยัง Version นั้นได้ง่าย

เคล็ดลับ:

ใช้ Lightweight Tag (git tag <tagname>) ถ้าคุณไม่ต้องการ Metadata เพิ่มเติม

15. Hard Reset เพื่อทำการ Clean Workspace

ถ้าต้องการลบ Files และ Folders ที่ไม่ได้ติดตาม (Untracked Files) ไว้อย่างรวดเร็ว คำสั่งนี้จะช่วยล้างข้อมูลที่ไม่ต้องการออกไป โดยคงไว้เฉพาะ Files ที่อยู่ภายใต้ Version Control

วิธีใช้:

ข้อดี:

มันช่วยให้ Workspace ของคุณเป็นระเบียบมากขึ้นโดยลบสิ่งที่ไม่จำเป็นออกไป

เคล็ดลับ:

ขอแนะนำให้ใช้คำสั่งนี้ด้วยความระมัดระวัง ตรวจสอบให้แน่ใจว่า คุณจะไม่ต้องใช้ Untracked Files เหล่านั้นในภายหลัง

16. ดู Git Operations ทั้งหมด

หากคุณเคยพลาดทำ Git History ผิดไป คำสั่ง git reflog คือสิ่งที่จะช่วยคุณได้ เพราะมันแสดง Log ของ Operations ทั้งหมดใน Repository ทำให้คุณกู้คืนการเปลี่ยนแปลงที่หายไปได้

วิธีใช้:

ข้อดี:

มันเป็นเหมือน “ประวัติของ Git History” มันช่วยให้คุณหาการ Commits หรือ Operations ที่หายไปได้

เคล็ดลับ:

ใช้คำสั่งนี้ เมื่อคุณคิดว่าหมดหวังหลังจากการ reset หรือ rebase ผิดพลาด

17. รวมหลาย Commit เข้าด้วยกัน

คุณเคยต้องการล้าง Commit History ก่อนทำการ Push ไหม? การ Squash Commit จะช่วยให้คุณสามารถรวมหลาย Commit เป็นหนึ่งเดียวเพื่อให้ History ดูดีขึ้น

วิธีใช้:

ข้อดี:

มันทำให้ Commit History ดูเป็นมืออาชีพ ซึ่งเหมาะสำหรับการทำงานร่วมกันเป็นทีม

เคล็ดลับ:

มันเหมาะมากสำหรับรวมการแก้ไขเล็ก ๆ น้อย ๆ หลายอันเข้าด้วยกันก่อนทำการ Push

18. การ Revert Commit

หากคุณต้องการยกเลิก Commit หนึ่งโดยไม่กระทบ History ทั้งหมด คำสั่ง git revert จะสร้าง Commit ใหม่ที่ยกเลิกการเปลี่ยนแปลงจาก Commit ที่ต้องการ

วิธีใช้:

ข้อดี:

มันต่างจาก reset เพราะคำสั่ง revert จะไม่ไป Rewrite History เดิม แต่มันจะแค่ย้อนกลับผลของการ Commit เท่านั้น

19. ดู Graph Branches ของคุณ

คำสั่งนี้จะช่วยให้คุณเห็นภาพรวมของ Branch History ของคุณ ทำให้เห็นการ Merge, Branches และ Commit ได้ง่ายขึ้น

วิธีใช้:

ข้อดี:

มันเป็นมุมมองภาพรวมของโครงสร้าง Project ของคุณ ซึ่งมีประโยชน์อย่างยิ่งในการทำความเข้าใจการ Setup Branch ที่ซับซ้อน

20. Auto-Completion

อย่าเสียเวลาพิมพ์คำสั่งยาว ๆ เปิดใช้งาน Auto-Completion ของ Git เพื่อจบคำสั่งด้วยปุ่ม TAB

วิธีใช้:

เพียงกด TAB หลังจากเริ่มพิมพ์คำสั่ง Git

ข้อดี:

Auto-Completion จะช่วยเพิ่มความเร็ว Workflow ของคุณ และช่วยป้องกันการพิมพ์ผิด

เคล็ดลับ:

ตรวจสอบให้แน่ใจว่า คุณได้ตั้งค่า Auto-Completion ของ Git ใน Terminal แล้ว เพื่อเพิ่มประสิทธิภาพการทำงานอย่างแท้จริง

ที่มา: https://blog.stackademic.com/

 

 

รับตำแหน่งงานไอทีใหม่ๆ ด้วยบริการ IT Job Alert

 

อัพเดทบทความจากคนวงในสายไอทีทาง LINE ก่อนใคร
อย่าลืมแอดไลน์ @techstarth เป็นเพื่อนนะคะ

เพิ่มเพื่อน

 

บทความล่าสุด