1. สูตรโกงเขียนโค้ด
  2. Git

🔠 คำศัพท์

ศัพท์ความหมาย
Initialize (Init)เริ่มต้น Repository ใหม่
Repository (Repo)ที่เก็บข้อมูลโปรเจกต์ Git
Local RepositoryRepository ที่อยู่บนเครื่องของเรา
Remote RepositoryRepository ที่อยู่บนเซิร์ฟเวอร์
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 BranchPush Branch ไปยัง Remote
Originชื่อ Remote Repository ที่สำคัญ
Rebaseปรับฐานไปยัง Branch ที่เลือก
Revertยกเลิกการเปลี่ยนแปลง Commit ที่เลือก
Cherry Pickเลือกการเปลี่ยนแปลงจาก Commit เดียว
SubmoduleRepository ปลึกย่อยในโปรเจกต์
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 stashStash การเปลี่ยนแปลงทั้งหมด
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 pushPush Commit ที่อยู่บน Local ไปยัง Remote
git push --allPush Commit Branch ทั้งหมดที่อยู่บน Local ไปยัง Remote
git push -fPush แบบ Force
git push <remote> <branch>Publish Branch ใหม่บน Remote
git push -d <remote> <branch>ลบ Branch ที่กำหนดบน Remote
git push <remote> --tagsPublish 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 --rebasePull แบบ 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 ล่าสุด