ทบทวน Git + Mental Model
เข้าใจ 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 |
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 ให้เราเลือกได้ว่า "จะ 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 ด้วยคำตัวเอง