ไม่มีชื่อบทความ
📚 Git Workshop Step-by-Step: พื้นฐานที่ dev มือใหม่ต้องใช้เป็น
1. อัพเดตข้อมูล branch ล่าสุดจาก remote
พูด: “ก่อนจะเปรียบเทียบ branch หรือ merge อะไรทุกครั้ง เราต้องแน่ใจว่าเราเห็นข้อมูลล่าสุดของทีมก่อนนะ ให้ใช้คำสั่งนี้…”
ตัวอย่าง:
git fetch origin
อธิบาย:
“git fetch จะดึงข้อมูล branch ล่าสุดจาก server (GitHub, GitLab ฯลฯ) มาไว้ที่เครื่องเรา
แต่ยังไม่รวม (merge) เข้ามาใน branch ที่เราทำงานอยู่ตอนนี้นะ แค่เอามาให้ดูเฉย ๆ”
2. ดูว่ามี branch อะไรบ้าง
พูด: “สมมุติเราจะดูว่าตอนนี้เรามี branch อะไรในเครื่องบ้าง ให้พิมพ์…”
ตัวอย่าง:
git branch
“จะขึ้นเป็น list ของ branch ที่อยู่ในเครื่องเรา”
ถ้าอยากดู branch ที่อยู่บน server ให้เพิ่ม -r
git branch -r
3. ดูว่ามีอะไรเปลี่ยนแปลงบ้าง (diff)
3.1 เปรียบเทียบไฟล์เฉพาะไฟล์เดียว
พูด:
“สมมติเราอยากรู้ว่า package.json ของ branch ที่เราทำงานอยู่ต่างจาก main ที่อยู่บน server ยังไง ให้ใช้…”
ตัวอย่าง:
git diff origin/main -- package.json
อธิบาย:
“git diff origin/main -- package.json คือการเปรียบเทียบไฟล์ package.json ของ branch ปัจจุบันกับไฟล์ package.json ของ branch main ที่อยู่บน server ว่ามีอะไรต่างกันบ้าง”
3.2 เปรียบเทียบทั้ง branch
พูด: “ถ้าอยากดูทุกไฟล์ที่ต่างกันระหว่าง branch ปัจจุบันกับ main ให้ใช้…”
ตัวอย่าง:
git diff origin/main
4. ดูประวัติการเปลี่ยนแปลง (log)
พูด: “ถ้าอยากรู้ว่าใน repo นี้มีใครแก้อะไรเมื่อไหร่บ้าง ใช้คำสั่งนี้”
ตัวอย่าง:
git log
อธิบาย: “เวลาพิมพ์ git log แล้ว จะมีหน้าต่างแสดงข้อมูล commit ยาว ๆ ขึ้นมา ถ้าอยากออก ให้กดปุ่ม q (ไม่ใช่ Ctrl + C หรือ Ctrl + Z)”
ตัวอย่างต่อยอด: “อยากดู commit ล่าสุดแค่ 3 อัน ใช้”
git log -3
“อยากดู log พร้อมรายละเอียดไฟล์ที่แก้ไขแต่ละ commit ใช้”
git log -p
5. เช็คสถานะไฟล์ที่เปลี่ยนแปลงในเครื่อง
พูด: “ทุกครั้งที่เราทำงาน ควรเช็คสถานะไฟล์ของเราก่อน commit ด้วยคำสั่งนี้”
ตัวอย่าง:
git status
6. สลับ branch
พูด: “ถ้าอยากสลับ branch ให้ใช้ git checkout ตามด้วยชื่อ branch เช่น…”
git checkout main
7. commit งาน
พูด: “พอเราแก้ไขไฟล์เสร็จแล้ว ต้อง add ไฟล์เข้าคิว commit ก่อน”
git add .
git commit -m "สรุปสิ่งที่แก้ไข"
8. เทคนิคจำง่าย/เคล็ดลับ
- git diff = “ดูต่าง”
- git log = “ดูอดีต”
- q = “ออกจากโหมดดู”
- ทุกคำสั่งที่แสดงผลยาว ๆ ในหน้าต่าง less (log, diff, man) กด q ได้เสมอ
Q & A: ถาม-ตอบที่มักพบบ่อย
Q: อยากออกจากหน้า log กดอะไร? A: กด q
Q: ดูไฟล์ที่เปลี่ยนเฉพาะไฟล์เดียว? A: git diff origin/main -- ชื่อไฟล์
Q: ถ้าใช้ git log แล้วค้าง/ไปต่อไม่ได้? A: กด q เพื่อออก
🟢 Workshop: ให้ลองทำจริง
Task 1
- ให้แก้ไขไฟล์ package.json
- ให้ลองใช้ git diff origin/main -- package.json
- ให้ลอง git log แล้วออกด้วย q
Task 2
- ให้สลับ branch ไป main
- กลับมาที่ branch ตัวเอง
- ลองเปรียบเทียบ diff ดู
Task 3
- ให้ดูว่า branch ที่มีอยู่บนเครื่องกับบน server ต่างกันยังไง
⭐ ทิ้งท้าย
“Git command line ดูเหมือนเยอะ แต่ใช้บ่อย ๆ จะคล่อง จำหลักแค่นี้แล้วค่อย ๆ เพิ่มคำสั่งที่ advance ขึ้นเรื่อย ๆ ก็พอ” “จำไว้ว่า ทุกอย่างที่ดู log, diff, หรือ man page ออกได้ด้วย q”