Notes & software courses · Free to learn
Aph's Blog
On this page

ทบทวน Git + Mental Model

👋 อ่านฟรีทั้งหมดบน Aph's Blog — เนื้อหาภาษาไทย ทำตามทีละหน้าใน sidebar ได้เลย หากมีข้อเสนอแนะหรืออยากให้เพิ่มหัวข้อไหน บอกได้เสมอ

เข้าใจ git เป็น "ภาพถ่าย" ของโปรเจกต์ และ 3 พื้นที่ที่ทำให้ทุกคำสั่งง่ายขึ้น

Git คือระบบติดตามการเปลี่ยนแปลงโค้ด (version control) ที่ทุกบริษัทใช้ หัวข้อนี้ปูพื้นและให้ "แผนที่ความคิด" ที่ทำให้คำสั่ง git ทั้งหมดเข้าใจง่าย ก่อนลงลึกเรื่อง branch และการทำงานเป็นทีม

git เก็บ "ภาพถ่าย" ไม่ใช่ผลต่าง

ทุกครั้งที่ commit git เก็บภาพถ่าย (snapshot) ของไฟล์ทั้งโปรเจกต์ ณ ตอนนั้น ทำให้ย้อนกลับไปจุดไหนก็ได้ และรู้ว่าใครแก้อะไรเมื่อไร

3 พื้นที่ของ git (หัวใจสำคัญ)

เข้าใจ 3 พื้นที่นี้แล้ว คำสั่ง git แทบทุกตัวจะเข้าใจทันที

พื้นที่คือย้ายเข้าด้วย
Working Directoryไฟล์ที่กำลังแก้อยู่จริง(แก้ไฟล์)
Staging Areaที่พักไฟล์ที่จะ commit รอบนี้git add
Repositoryประวัติ commit ถาวรgit commit
bash
git init                  # สร้าง repo ในโฟลเดอร์
git status                # ดูว่าไฟล์ไหนเปลี่ยน/staged
git add file.py           # working -> staging
git add .                 # เพิ่มทุกไฟล์ที่เปลี่ยน
git commit -m "เพิ่มฟีเจอร์ X"  # staging -> repository
git log --oneline         # ดูประวัติ commit แบบย่อ
ทำไมมี staging area

staging ให้เราเลือกได้ว่า "จะ commit อะไรบ้างในรอบนี้" — แก้ 5 ไฟล์แต่ commit แค่ 2 ไฟล์ที่เกี่ยวกันได้ ทำให้ commit สื่อความหมายและแยกเรื่องชัดเจน

commit ที่ดี

commit คือหน่วยของการเปลี่ยนแปลง 1 เรื่อง พร้อมข้อความอธิบาย — เป็นทั้งจุด save และเอกสารบอกว่าทำไมแก้

สรุปหัวข้อนี้

  • git เก็บ snapshot ของโปรเจกต์ทุก commit ย้อนกลับได้
  • 3 พื้นที่: Working Directory → (git add) → Staging → (git commit) → Repository
  • git status ดูสถานะ, git log ดูประวัติ
  • staging ให้เลือกว่าจะ commit อะไรในรอบนี้
แบบฝึกหัด

1) สร้างโฟลเดอร์ใหม่ git init แล้ว commit ไฟล์แรก 2) แก้ไฟล์ 2 ไฟล์ แต่ git add แค่ไฟล์เดียวแล้ว commit สังเกต git status 3) ดู git log --oneline 4) อธิบายความต่างของ working / staging / repository ด้วยคำตัวเอง