Programming
Git GitHub สอนใช้ Version Control ตั้งแต่เริ่มต้น 2026
Git คืออะไร ทำไมโปรแกรมเมอร์ทุกคนต้องใช้
เคยเจอไหมครับ ไฟล์ชื่อ report_final.docx, report_final_v2.docx, report_final_v2_แก้แล้ว.docx, report_จริงๆนะ_final.docx? นี่คือปัญหาที่ Git แก้ได้
Git คือระบบ Version Control ที่ติดตามทุกการเปลี่ยนแปลงของไฟล์ ย้อนกลับได้ทุกเวลา ทำงานหลายคนพร้อมกันได้โดยไม่ชนกัน สร้างโดย Linus Torvalds (คนสร้าง Linux) ในปี 2005 ปัจจุบันเป็นมาตรฐานของอุตสาหกรรม IT ทั่วโลก
ผมเคยเขียนโค้ดโดยไม่ใช้ Git แก้โค้ดแล้วพัง ย้อนกลับไม่ได้ ต้องเขียนใหม่ เสียเวลาเป็นวัน พอเริ่มใช้ Git ปัญหานี้หายไปเลย
ติดตั้ง Git
Windows
- ดาวน์โหลดจาก git-scm.com
- ติดตั้ง (กด Next ไปเรื่อยๆ ใช้ค่า default)
- เปิด Git Bash หรือ Command Prompt พิมพ์
git --version
Mac
brew install git
git --version
Linux
sudo apt install git
git --version
ตั้งค่าครั้งแรก (สำคัญ!)
git config --global user.name "ชื่อคุณ"
git config --global user.email "email@example.com"
git config --global init.defaultBranch main
คำสั่ง Git พื้นฐาน 10 คำสั่งที่ต้องรู้
| คำสั่ง | หน้าที่ | ตัวอย่าง |
|---|---|---|
git init | สร้าง repository ใหม่ | git init |
git clone | โคลน repo จาก remote | git clone https://github.com/user/repo.git |
git status | ดูสถานะไฟล์ | git status |
git add | เพิ่มไฟล์เข้า staging | git add . (ทุกไฟล์) |
git commit | บันทึกการเปลี่ยนแปลง | git commit -m "fix login bug" |
git push | ส่งขึ้น remote (GitHub) | git push origin main |
git pull | ดึงจาก remote มาอัปเดต | git pull origin main |
git branch | จัดการ branch | git branch feature-login |
git checkout | สลับ branch | git checkout feature-login |
git merge | รวม branch | git merge feature-login |
เริ่มต้นใช้ Git — ขั้นตอนจริง
สร้างโปรเจกต์แรก
# สร้างโฟลเดอร์โปรเจกต์
mkdir my-project
cd my-project
# เริ่ม Git
git init
# สร้างไฟล์
echo "# My Project" > README.md
echo "print('Hello')" > app.py
# ดูสถานะ
git status
# จะเห็น: Untracked files: README.md, app.py
# เพิ่มไฟล์เข้า staging
git add .
# Commit (บันทึก)
git commit -m "Initial commit: add README and app.py"
# ดูประวัติ
git log --oneline
# จะเห็น: abc1234 Initial commit: add README and app.py
GitHub — เก็บโค้ดบน Cloud
สร้าง Repository บน GitHub
- สมัคร github.com (ฟรี)
- กด New Repository → ตั้งชื่อ → Create
- เชื่อมต่อ local กับ GitHub:
# เพิ่ม remote
git remote add origin https://github.com/username/my-project.git
# Push ขึ้น GitHub
git push -u origin main
# ครั้งต่อไปแค่
git push
Branch — ทำงานหลายอย่างพร้อมกัน
Branch เหมือนการแยกทางเดิน ทำงานแต่ละ feature แยกกัน ไม่กระทบ main code
สำหรับผู้ที่สนใจเรื่องการเงินและการเทรด สามารถศึกษาเพิ่มเติมได้ที่ Price Action สอน
# สร้าง branch ใหม่
git branch feature-login
# สลับไป branch นั้น
git checkout feature-login
# หรือสร้าง+สลับในคำสั่งเดียว
git checkout -b feature-login
# ทำงาน... แก้โค้ด... commit...
git add .
git commit -m "add login page"
# กลับไป main
git checkout main
# รวม feature เข้า main
git merge feature-login
# ลบ branch ที่ไม่ใช้แล้ว
git branch -d feature-login
Merge Conflict — เมื่อโค้ดชนกัน
เกิดเมื่อ 2 คนแก้ไฟล์เดียวกันบรรทัดเดียวกัน Git ไม่รู้จะเอาของใคร ต้องแก้เอง:
# เมื่อเกิด conflict จะเห็นแบบนี้ในไฟล์:
<<<<<<< HEAD
print("Hello from main")
=======
print("Hello from feature")
>>>>>>> feature-login
# วิธีแก้: เลือกเอาอันที่ต้องการ ลบ markers ออก
print("Hello from main and feature")
# แล้ว commit
git add .
git commit -m "resolve merge conflict"
Pull Request — ขอรวมโค้ดอย่างมืออาชีพ
ในทีมจริง ไม่ merge ตรงๆ แต่สร้าง Pull Request (PR) บน GitHub ให้คนอื่น review ก่อน:
- สร้าง branch → ทำงาน → push ขึ้น GitHub
- บน GitHub กด "New Pull Request"
- เลือก branch ที่จะ merge เข้า main
- เขียนอธิบายว่าทำอะไร
- ทีม review โค้ด → approve → merge
.gitignore — ไฟล์ที่ไม่ควร commit
# สร้างไฟล์ .gitignore
# ไฟล์ที่ไม่ควร commit:
# Environment
.env
venv/
node_modules/
# IDE
.vscode/
.idea/
*.swp
# OS
.DS_Store
Thumbs.db
# Build
dist/
build/
*.pyc
__pycache__/
# Logs
*.log
Git Workflow ที่นิยม
| Workflow | เหมาะกับ | Branch |
|---|---|---|
| GitHub Flow | ทีมเล็ก, deploy บ่อย | main + feature branches |
| Git Flow | ทีมใหญ่, release cycle | main + develop + feature + release + hotfix |
| Trunk-based | CI/CD, deploy ทุกวัน | main + short-lived branches |
สำหรับมือใหม่ แนะนำ GitHub Flow: ทำงานบน feature branch → PR → merge เข้า main ง่ายและเข้าใจได้เร็ว
เครื่องมือ GUI สำหรับ Git
ถ้าไม่ชอบพิมพ์คำสั่ง ใช้ GUI ได้:
- VS Code — มี Git ในตัว ใช้ง่ายที่สุด (ฟรี)
- GitHub Desktop — ง่ายมาก เหมาะมือใหม่ (ฟรี)
- GitKraken — สวย ฟีเจอร์เยอะ (ฟรีสำหรับ public repo)
- Sourcetree — จาก Atlassian ฟีเจอร์ครบ (ฟรี)
คำสั่ง Git ขั้นสูงที่ควรรู้
# ย้อนกลับ commit ล่าสุด (เก็บไฟล์ไว้)
git reset --soft HEAD~1
# ดูความต่างของไฟล์
git diff
# เก็บงานชั่วคราว (stash)
git stash
git stash pop
# ดูประวัติสวยๆ
git log --oneline --graph --all
# แก้ commit message ล่าสุด
git commit --amend -m "new message"
# Cherry-pick commit จาก branch อื่น
git cherry-pick abc1234
สรุป
Git เป็นเครื่องมือที่โปรแกรมเมอร์ทุกคนต้องใช้เป็น ไม่มีข้อยกเว้น เริ่มจากจำ 5 คำสั่ง: add, commit, push, pull, branch แค่นี้ก็ใช้งานได้ 90% ของงานประจำวันแล้ว
สร้าง GitHub account วันนี้ สร้าง repo แรก push โค้ดขึ้นไป แล้วค่อยๆ เรียนรู้ branch, merge, PR ไปทีละขั้น ผมรับรองว่าเมื่อใช้เป็นแล้ว จะสงสัยว่าทำไมไม่เริ่มใช้ตั้งนานแล้วครับ