🔠 คำศัพท์
ศัพท์ | ความหมาย |
---|---|
Initialize (Init) | เริ่มต้น Repository ใหม่ |
Repository (Repo) | ที่เก็บข้อมูลโปรเจกต์ Git |
Local Repository | Repository ที่อยู่บนเครื่องของเรา |
Remote Repository | Repository ที่อยู่บนเซิร์ฟเวอร์ |
Working Directory | โฟลเดอร์ที่ทำงานกับ Git |
Change | การเปลี่ยนแปลงของไฟล์ |
Stage Change | เตรียมไฟล์เข้าสู่การ Commit |
Unstage Change | ยกเลิกการ Stage |
Discard Change | ยกเลิกการเปลี่ยนแปลงไฟล์ |
Commit | บันทึกการเปลี่ยนแปลงของ Stage |
Commit Message | ข้อความอธิบายการ Commit |
Commit Amend | แก้ไข Commit ล่าสุด |
Head | ตำแหน่งของ Commit ล่าสุด |
Blame | ตรวจสอบว่าใครแก้ไขบรรทัดนั้นๆ |
Branch | สาขาในโปรเจกต์สำหรับการพัฒนา |
Checkout | สลับไปยังจุดต่างๆของ Commit |
Tag | ทำเครื่องหมายเวอร์ชั่นใน Commit |
Stash | เก็บโค้ดชั่วคราวเพื่อใช้ในภายหลัง |
Merge | รวมโค้ดจากสอง Branch เข้าด้วยกัน |
Conflict | ความขัดแย้งในการ Merge |
Resolve | แก้ไขความขัดแย้งในการ Merge |
Clone | คัดลอก Remote Repo ไปยัง Local Repo |
Fork | คัดลอก Remote Repo ไปยัง Remote Repo |
Fetch | ดึงข้อมูลล่าสุดจาก Remote |
Pull | ดึงข้อมูลจาก Remote และใช้การเปลี่ยนแปลง |
Push | ส่ง Commit จาก Local ไปยัง Remote |
Push (Force) | Push โดยละเลยคำเตือน |
Pull Request | คำร้องขอรวมโค้ดจากผู้อื่น |
Publish Branch | Push Branch ไปยัง Remote |
Origin | ชื่อ Remote Repository ที่สำคัญ |
Rebase | ปรับฐานไปยัง Branch ที่เลือก |
Revert | ยกเลิกการเปลี่ยนแปลง Commit ที่เลือก |
Cherry Pick | เลือกการเปลี่ยนแปลงจาก Commit เดียว |
Submodule | Repository ปลึกย่อยในโปรเจกต์ |
Git Ignore (.gitignore) | ไฟล์กำหนดให้ Git ไม่ติดตามไฟล์ |
⚙️ Config
คำสั่ง | ความหมาย |
---|---|
git config --list | รายชื่อการตั้งค่าที่มี (กด q เพื่อออก) |
git config --unset <setting> | ยกเลิกการตั้งค่าที่เลือก |
git config --global user.name <name> | ตั้งชื่อผู้ Commit แบบ Global |
git config --global user.email <email> | ตั้งอีเมลผู้ Commit แบบ Global |
git config --global alias.<shortcut> <command> | ตั้งคำสั่งลัดให้กับ shortcut |
git config --global color.ui true | เปิดใช้งานสีบน CLI |
git config --global init.defaultBranch <name> | ตั้งชื่อ Branch เริ่มต้น |
📖 Basic
คำสั่ง | ความหมาย |
---|---|
git [command] --help | เรียกดู Help ตามคำสั่ง |
git init | เริ่มต้น Repository |
git clone <url> | Clone Repository ตาม URL |
git config user.name <name> | ตั้งชื่อผู้ Commit เฉพาะ Repo นี้ |
git config user.email <email> | ตั้งอีเมลผู้ Commit เฉพาะ Repo นี้ |
🔄 Changes
คำสั่ง | ความหมาย |
---|---|
git add <file> | เลือก Stage เฉพาะไฟล์ |
git add . | Stage ทั้งหมด |
git commit -m <message> | Commit Staged Changes พร้อมข้อความ |
git commit --amend | แก้ไขข้อความ Commit ล่าสุด |
git reset <file> | Unstage ไฟล์ |
git reset --soft <commit> | Soft Reset ไปยัง Commit |
git reset --hard <commit> | Hard Reset ไปยัง Commit |
git stash | Stash การเปลี่ยนแปลงทั้งหมด |
git stash apply | นำ Stash ล่าสุดไปใช้ |
git stash pop | นำ Stash ล่าสุดไปใช้ และลบ |
git stash drop | ลบ Stash ล่าสุด |
git tag | แสดงรายการ Tag ทั้งหมด |
git tag <name> | สร้าง Tag ใหม่ |
git tag -d <name> | ลบ Tag ที่กำหนด |
🔗 Remote
คำสั่ง | ความหมาย |
---|---|
git remote | ตรวจสอบรายการ Remote |
git remote -v | ตรวจสอบรายการ Remote แบบละเอียด |
git remote add <name> <url> | เพิ่ม Remote ตาม URL ที่กำหนด |
git remote rename <old> <new> | เปลี่ยนชื่อ Remote |
git remote get-url <name> <url> | เรียกดู URL ของ Remote |
git remote set-url <name> <url> | แก้ไข URL ของ Remote |
git remote remove <name> | ลบ Remote ที่เลือก |
git push | Push Commit ที่อยู่บน Local ไปยัง Remote |
git push --all | Push Commit Branch ทั้งหมดที่อยู่บน Local ไปยัง Remote |
git push -f | Push แบบ Force |
git push <remote> <branch> | Publish Branch ใหม่บน Remote |
git push -d <remote> <branch> | ลบ Branch ที่กำหนดบน Remote |
git push <remote> --tags | Publish Tag ใหม่ทั้งหมดไปยัง Remote |
git push <remote> <tag> | Publish Tag ใหม่ที่เลือกไปยัง Remote |
git push -d <remote> <tag> | ลบ Tag ที่กำหนดบน Remote |
git fetch | เรียกดูการเปลี่ยนแปลงบน Remote แต่ไม่นำไปใช้งาน |
git pull | เรียกดูการเปลี่ยนแปลงบน Remote และนำไปใช้งาน |
git pull <remote> <branch> | Pull ข้อมูลจาก Remote และ Branch ที่เลือก |
git pull --rebase | Pull แบบ Rebase เพื่อไม่ให้มี Commit ใหม่ |
🌿 Branch
คำสั่ง | ความหมาย |
---|---|
git branch | ตรวจสอบรายการ Branch |
git branch <name> | สร้าง Branch ใหม่ |
git branch -d <name> | ลบ Branch ตามชื่อ |
git merge <branch> | Merge โดยนำ Branch ที่กำหมดมายัง Branch ปัจจุบัน |
git merge --continue | ดำเนินการ Merge ต่อหลัง Resolve Conflict และ git add เสร็จสิ้น |
git merge --abort | ยกเลิกการ Merge กรณี Conflict |
git rebase <branch> | Rebase โดยนำการเปลี่ยนแปลงจาก Branch ที่กำหนด |
git rebase --continue | ดำเนินการ Rebase ต่อหลัง Resolve Conflict และ git add เสร็จสิ้น |
git rebase --abort | ยกเลิกการ Rebase กรณี Conflict |
git revert <commit> | ย้อนกลับการเปลี่ยนแปลงของ Commit |
git cherry-pick <commit> | Cherry pick จาก Commit ที่เลือก |
👀 Inspect
คำสั่ง | ความหมาย |
---|---|
git checkout <branch> | Checkout ไปยัง Branch |
git checkout -b <branch> | Checkout พร้อมสร้าง Branch ใหม่ |
git checkout --orphan <branch> | Checkout พร้อมสร้าง Branch ใหม่แบบไม่เกี่ยวข้องกับประวัติเดิม |
git checkout <commit> | Checkout ไปยัง Commit |
git status | แสดงสถานะทั่วไปของ Repo |
git blame <file> | ตรวจสอบผู้เปลี่ยนแปลงไฟล์ |
git log | แสดงรายการ Commit ทั้งหมด (กด q เพื่อออก) |
git log [branch] | แสดงรายการ Commit ตาม Branch |
git log --all --decorate --oneline --graph | แสดง Log แบบกราฟฟิค (A Dog) |
git config --global alias.adog "log --all --decorate --oneline --graph" | สร้างทางลัด git adog เพื่อเรียกใช้ข้างต้น |
git show | เรียกดูข้อมูลบน Commit ล่าสุด |
git show <commit> | เรียกดูข้อมูลบน Commit ที่เหลือ |
git show <tag> | เรียกดูข้อมูลบน Tag ที่เหลือ |
git diff | แสดงข้อแตกต่างไฟล์กับ Unstaged changes |
git diff --staged | แสดงข้อแตกต่างไฟล์กับ Staged changes |
git diff <commit> <commit> | แสดงข้อแตกต่างระหว่าง Commit ที่กำหนด |
git diff HEAD | แสดงข้อแตกต่างระหว่าง Commit ล่าสุด |