back
May 9, 2026

Git Commands Cheatsheet

บันทึกคำสั่ง Git ที่มักจะใช้บ่อยๆ แต่ก็มีโอกาสลืมได้ง่ายๆ เอาไว้เปิดดูย้อนหลังเวลาทำงานจริง

การดูประวัติ Commit (Git Log)

บางที git log ธรรมดามันยาวเกินไป ดูยาก ลองใช้คำสั่งพวกนี้ดู:

bash
# ดู log แบบย่อเหลือแค่บรรทัดเดียว (รหัส commit + ข้อความ)
git log --oneline

# ดู log แบบเป็นกราฟเส้นๆ สวยงามและอ่านง่ายขึ้น
git log --graph --oneline --all

การย้อนกลับ (Git Reset)

git reset มีประโยชน์มากเวลาเรา commit ผิด หรือต้องการย้อนเวลา แต่ต้องระวังอย่าใช้แบบ --hard บ่อยถ้าไม่ชัวร์

bash
# ย้อนกลับไป 1 commit ล่าสุด โดยที่ "ไฟล์ที่เราแก้" ยังคงอยู่ (เอาแค่ commit ออก)
git reset --soft HEAD~1

# ย้อนกลับไปยัง commit รหัส xxx โดยที่ไฟล์ที่เราแก้ยังอยู่เหมือนเดิม
git reset --soft <commit_hash>

# ย้อนกลับไปยัง commit รหัส xxx และลบการเปลี่ยนแปลงทุกอย่างทิ้ง (ระวัง! ไฟล์ที่แก้จะหายหมด)
git reset --hard <commit_hash>

Note: --soft จะเก็บการเปลี่ยนแปลงไว้ใน Staging (พร้อม commit ใหม่) ส่วน --mixed (ค่าเริ่มต้น) จะเก็บการเปลี่ยนแปลงไว้แต่เอาออกจาก Staging ครับ

การแก้ Commit ล่าสุด (Amend)

บางทีเพิ่งกด commit ไป แต่ลืมเพิ่มไฟล์บางไฟล์ หรือพิมพ์ข้อความ commit ผิด

bash
# 1. Add ไฟล์ที่ลืม (ถ้ามี)
git add <file>

# 2. แก้ไข commit ล่าสุด (จะเปิดหน้าต่างให้แก้ข้อความ)
git commit --amend

# 3. หรือถ้าแค่จะแก้ข้อความเฉยๆ โดยไม่ต้องเปิด Text Editor
git commit --amend -m "ข้อความใหม่ที่ถูกต้อง"

การพักงานชั่วคราว (Git Stash)

เวลาทำฟีเจอร์นึงอยู่ แต่ต้องสลับไปแก้บั๊กด่วนที่ branch อื่น โดยที่งานยังไม่เสร็จพอที่จะ commit

bash
# เก็บงานที่ทำอยู่ปัจจุบันเข้ากล่องพักงาน
git stash

# หรือเก็บพร้อมตั้งชื่อกันลืม
git stash save "กำลังทำฟีเจอร์ x แต่ต้องไปแก้บั๊กก่อน"

# ดูว่าในกล่องมีอะไรบ้าง
git stash list

# เอางานล่าสุดที่พักไว้ออกมาทำต่อ (และลบออกจากกล่อง)
git stash pop

# เอางานออกมาทำต่อ แต่ "ไม่ลบ" ออกจากกล่อง (เผื่อเอาไปใช้ branch อื่นด้วย)
git stash apply

การหยิบเฉพาะบาง Commit (Cherry-pick)

เวลาเราต้องการแค่บาง commit จาก branch อื่นมาใส่ branch ปัจจุบันของเรา โดยไม่ต้อง merge มาทั้งหมด

bash
# ไปที่ branch ที่เราต้องการนำ commit มาใส่
git checkout feature-branch

# หยิบ commit รหัส xxx มาใส่
git cherry-pick <commit_hash>

ลบ Branch ทิ้ง

bash
# ลบ branch ในเครื่อง (Local) - จะลบได้ก็ต่อเมื่อ merge แล้ว
git branch -d <branch_name>

# บังคับลบ branch ในเครื่อง ทิ้งไปเลยไม่ต้องแคร์ว่า merge หรือยัง
git branch -D <branch_name>

# ลบ branch บน Server (Remote)
git push origin --delete <branch_name>