🇯🇵 日本語 | 🇺🇸 English | 🇪🇸 Español | 🇵🇹 Português | 🇹🇭 ไทย | 🇨🇳 中文

มาดูประวัติกัน! การใช้งานพื้นฐาน `git log` เพื่อตรวจสอบประวัติ Commit

ในบทความก่อนหน้านี้ เราได้เรียนรู้วิธีการบันทึกและยกเลิกการเปลี่ยนแปลงโดยใช้ Git ไปแล้ว เมื่อทำงานไปเรื่อยๆ สิ่งต่อไปที่คุณอาจอยากรู้ก็คือ "ที่ผ่านมาเราบันทึกการเปลี่ยนแปลงอะไรไปบ้างนะ?" การทำความเข้าใจเนื้อหางานในอดีตอย่างแม่นยำนั้นสำคัญอย่างยิ่งในการค้นหาสาเหตุของบั๊ก หรือตรวจสอบว่าฟีเจอร์บางอย่างถูกนำมาใช้เมื่อใด

ในบทความนี้ เราจะมาเน้นที่คำสั่ง `git log` ซึ่งมีประโยชน์มากในสถานการณ์เช่นนี้ คำสั่งนี้ใช้สำหรับแสดงประวัติการ commit ซึ่งเปรียบเสมือน "สมุดบันทึกการเดินทาง" ของโปรเจกต์ของคุณในรูปแบบที่ดูง่ายและเข้าใจได้ มาเรียนรู้วิธีการใช้ options ต่างๆ เพื่อดึงข้อมูลที่จำเป็นออกมาอย่างชาญฉลาดกันเถอะ!


วิธีใช้งาน `git log` เบื้องต้น

ก่อนอื่น ลองรันคำสั่ง `git log` แบบพื้นฐานที่สุดกันก่อน ที่ Terminal (หรือ Git Bash) ให้เข้าไปที่โฟลเดอร์ของ repository ที่คุณต้องการดูประวัติ แล้วพิมพ์คำสั่งต่อไปนี้

git log

เมื่อรันคำสั่ง ประวัติการ commit ที่ผ่านมาทั้งหมดจะแสดงขึ้นมาเรียงจากใหม่ที่สุดไปเก่าที่สุด ในหนึ่ง commit จะประกอบด้วยข้อมูลต่อไปนี้

หากประวัติยาว สามารถกดปุ่ม `q` เพื่อออกจากหน้าแสดงผล log ได้


ทำให้ดูง่ายขึ้น! Options ที่มีประโยชน์ของ `git log`

`git log` ในรูปแบบปกติอาจมีข้อมูลมากเกินไปและดูค่อนข้างยาก โชคดีที่ `git log` มี options ที่มีประโยชน์มากมายสำหรับปรับแต่งรูปแบบการแสดงผล

1. แสดงประวัติในบรรทัดเดียวแบบง่ายๆ (`--oneline`)

เหมาะที่สุดเมื่อคุณต้องการสรุปแต่ละ commit ให้อยู่ในบรรทัดเดียวเพื่อการแสดงผลที่เรียบง่าย โดยจะแสดงเพียง 7 ตัวอักษรแรกของ Commit ID และบรรทัดแรกของข้อความ commit ทำให้เข้าใจภาพรวมทั้งหมดได้อย่างรวดเร็ว

git log --oneline

2. แสดงรายการไฟล์ที่เปลี่ยนแปลงด้วย (`--stat`)

ใช้เมื่อต้องการแสดงข้อมูลสถิติไปพร้อมกันว่าในแต่ละ commit มีไฟล์ใดบ้างที่ถูกเปลี่ยนแปลง และมีการเพิ่ม/ลบไปกี่บรรทัด

git log --stat

3. แสดงเนื้อหาโค้ดที่เปลี่ยนแปลงอย่างละเอียด (`-p` หรือ `--patch`)

ใช้เมื่อต้องการดูรายละเอียดการเปลี่ยนแปลงในระดับโค้ด (diff) ของแต่ละ commit จะเห็นได้ชัดเจนว่าบรรทัดไหนถูกเพิ่มเข้ามา (แสดงด้วย `+`) และบรรทัดไหนถูกลบออกไป (แสดงด้วย `-`)

git log -p

4. จำกัดจำนวน commit ที่จะแสดง (`-n`)

มีประโยชน์เมื่อต้องการดูประวัติล่าสุดเพียงเล็กน้อย ตัวอย่างเช่น หากต้องการแสดงเพียง 3 รายการล่าสุด ให้ทำดังนี้

git log -n 3

5. แสดงการแตกสาขาของ branch แบบกราฟิก (`--graph`)

แสดงประวัติที่ซับซ้อน เช่น การรวม (merge) หลาย branch เข้าด้วยกัน โดยใช้เส้นเชื่อมต่อเพื่อให้เข้าใจง่ายในเชิงภาพ การใช้ร่วมกับ `--oneline` จะทำให้อ่านง่ายขึ้นอย่างมาก

git log --graph --oneline

Options สำหรับค้นหาประวัติที่ต้องการ

เมื่อโปรเจกต์ใหญ่ขึ้น การค้นหาประวัติการเปลี่ยนแปลงที่ต้องการจะทำได้ยาก ใน럴 때 options ที่ใช้กำหนดเงื่อนไขเพื่อกรองประวัติจะมีประโยชน์มาก

ดูเฉพาะประวัติของไฟล์หรือไดเรกทอรีที่ต้องการ

ดึงและแสดงเฉพาะประวัติของไฟล์ที่ระบุ (เช่น `index.html`) ว่ามีการเปลี่ยนแปลงเมื่อไหร่และอย่างไร

git log -- [ชื่อไฟล์]

ดูเฉพาะ commit ของผู้เขียนที่ต้องการ (`--author`)

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

git log --author="ชื่อผู้ใช้"

ค้นหาจากเนื้อหาของข้อความ commit (`--grep`)

ค้นหาเฉพาะ commit ที่มีคีย์เวิร์ดที่ต้องการ (เช่น "แก้ไขบั๊ก") อยู่ในข้อความ commit

git log --grep="คีย์เวิร์ดที่ต้องการค้นหา"

สรุป: ผู้ที่เชี่ยวชาญ `git log` คือผู้ที่กุมประวัติศาสตร์ของโปรเจกต์

ในครั้งนี้ เราได้แนะนำวิธีการต่างๆ ในการตรวจสอบประวัติ commit โดยใช้คำสั่ง `git log` ในช่วงแรกอาจจะเพียงพอแค่ `git log` หรือ `git log --oneline` แบบพื้นฐาน แต่เมื่อโปรเจกต์ซับซ้อนขึ้น options ที่แนะนำในครั้งนี้จะกลายเป็นอาวุธที่ทรงพลัง

ความสามารถในการเรียกดูการเปลี่ยนแปลงในอดีตได้อย่างอิสระนั้นเป็นสิ่งที่ขาดไม่ได้ในการเพิ่มความเร็วในการแก้ปัญหาและรักษาคุณภาพของโค้ด ลองใช้ options ต่างๆ ดู แล้วค้นหาวิธีการแสดงผลที่ดูง่ายที่สุดสำหรับคุณ