Git เป็นระบบควบคุมเวอร์ชั่น (Version Control System) ที่ใช้กันอย่างแพร่หลายในโลกการพัฒนาซอฟต์แวร์ สำหรับผู้ที่เพิ่งเริ่มใช้งาน Git กำลังแรก คำสั่งพื้นฐานที่จะกล่าวถึงในบทความนี้คือสิ่งที่นักพัฒนาเกือบทุกคนใช้ในการทำงานประจำวัน การเรียนรู้คำสั่งเหล่านี้จะช่วยให้คุณทำงานกับ Git ได้อย่างมีประสิทธิภาพ
1. git init – เริ่มต้น Repository ใหม่
คำสั่งนี้ใช้สำหรับสร้าง Git repository ใหม่ในโฟลเดอร์ปัจจุบัน
$ git init
2. git clone – ดาวนโหลด Repository จากเซิร์ฟเวอร์
สำหรับการคัดลอก repository ที่มีอยู่จากเซิร์ฟเวอร์ลงมายังเครื่องคอมพิวเตอร์ของคุณ
$ git clone <repository-url>
3. git add – เพิ่มไฟล์ลง Staging Area
คำสั่งนี้ใช้สำหรับเลือกไฟล์ที่ต้องการเก็บการเปลี่ยนแปลงในรอบต่อไป
$ git add <filename> # เพิ่มไฟล์เฉพาะ
$ git add . # เพิ่มไฟล์ทั้งหมดที่เปลี่ยนแปลง
4. git commit – บันทึก Snapshot ของโปรเจกต์
สร้างจุดเก็บแบบถาวร (commit) พร้อมกับข้อความอธิบายการเปลี่ยนแปลง
$ git commit -m "ข้อความอธิบาย commit ของคุณ"
5. git push – ส่ง Commit ไปยังเซิร์ฟเวอร์
อัปโหลดการเปลี่ยนแปลงของคุณไปยัง remote repository
$ git push origin <branch-name>
6. git pull – ดึง Commit จากเซิร์ฟเวอร์
ดาวนโหลดการเปลี่ยนแปลงจาก remote repository มายังเครื่องของคุณ
$ git pull origin <branch-name>
7. git status – ดูสถานะของ Repository
แสดงสถานะปัจจุบันของไฟล์และการเปลี่ยนแปลง
$ git status
8. git log – ดูประวัติ Commit
แสดงรายการ commit ที่สร้างขึ้นในประวัติของ repository
$ git log # แสดงรายละเอียดทั้งหมด
$ git log --oneline # แสดงเป็นบรรทัดเดียว
9. git branch – จัดการ Branch
สร้าง ดู หรือลบ branch ต่าง ๆ
$ git branch # ดู branch ทั้งหมด
$ git branch <branch-name> # สร้าง branch ใหม่
$ git branch -d <branch-name> # ลบ branch
10. git checkout – สลับ Branch
เปลี่ยนไปยัง branch ที่ต้องการหรือสร้าง branch ใหม่และเปลี่ยนไปพร้อมกัน
$ git checkout <branch-name> # สลับไปยัง branch ที่มีอยู่
$ git checkout -b <branch-name> # สร้าง branch ใหม่และสลับไป
11. git merge – ทำการ Merge Branch
รวมการเปลี่ยนแปลงจาก branch หนึ่งเข้าไปยัง branch ปัจจุบัน
$ git merge <branch-name>
12. git diff – ดูความแตกต่าง
แสดงความแตกต่างระหว่างไฟล์ที่เปลี่ยนแปลงกับรุ่นก่อนหน้า
$ git diff # ดูความแตกต่างที่ยังไม่ได้ stage
$ git diff --staged # ดูความแตกต่างที่ stage แล้ว
13. git reset – ย้อนกลับ Staging Area
นำไฟล์ออกจาก staging area โดยไม่ลบการเปลี่ยนแปลง
$ git reset HEAD <filename>
14. git revert – ย้อนกลับ Commit
สร้าง commit ใหม่ที่ยกเลิกการเปลี่ยนแปลงของ commit ที่ระบุ
$ git revert <commit-hash>
15. git tag – สร้าง Tag
สร้างจุดทำเครื่องหมายสำคัญในประวัติ เช่น รุ่น (version) ของซอฟต์แวร์
$ git tag v1.0.0
$ git push origin --tags
16. git stash – เก็บงานชั่วคราว
เก็บการเปลี่ยนแปลงไว้ชั่วคราวเพื่อใช้ในภายหลัง
$ git stash # เก็บการเปลี่ยนแปลง
$ git stash pop # นำการเปลี่ยนแปลงออกมาใช้อีกครั้ง
17. git remote – จัดการ Remote Repository
ดู หรือตั้งค่า remote repository ที่เชื่อมต่อกับ local repository
$ git remote -v # ดู remote ทั้งหมด
$ git remote add <name> <url> # เพิ่ม remote ใหม่
18. git config – ตั้งค่า Git
ดูหรือตั้งค่าต่าง ๆ ของ Git เช่น ชื่อผู้ใช้ อีเมล เป็นต้น
$ git config --list
$ git config --global user.name "ชื่อของคุณ"
$ git config --global user.email "อีเมลของคุณ"
19. git fetch – ดาวนโหลดข้อมูลจาก Remote
ดาวนโหลดข้อมูลจาก remote repository แต่ไม่ทำการ merge
$ git fetch
20. git blame – ค้นหาผู้แก้ไข Code
แสดงว่าบรรทัดของโค้ดแต่ละบรรทัดถูกแก้ไขโดยใครและเมื่อไร
$ git blame <filename>
