Devfavor

Back

Git คืออะไร และทำไมถึงเปลี่ยนชีวิตนักพัฒนาBlur image

เคยทำแบบนี้ไหม — แก้โค้ดไปสักพัก แล้วรู้สึกว่าของเดิมดีกว่า แต่ไม่รู้ว่าของเดิมหน้าตาเป็นยังไงแล้ว

หรือมีไฟล์ชื่อ project_final.zip, project_final_v2.zip, project_final_v2_REAL.zip อยู่บนเครื่อง แล้วก็ยังไม่แน่ใจว่าอันไหนคืออันล่าสุด

ถ้าใช่ — มาทำความรู้จัก Git กันว่าคืออะไรและทำงานยังไง


🌱 Git คืออะไร#

Git คือ Version Control System (VCS) — ระบบที่ติดตามการเปลี่ยนแปลงของไฟล์ในโปรเจกต์เรา

พูดง่าย ๆ คือ Git เหมือน “ประวัติย้อนหลัง” ของโค้ด ทุกครั้งที่เรา save ผ่าน Git (เรียกว่า commit) Git จะจำสถานะของไฟล์ทั้งหมดในขณะนั้นเอาไว้ แล้วเราสามารถย้อนกลับไปดูหรือกู้คืนได้เสมอ

และไม่จำกัดแค่โค้ด — ไฟล์ config หรือ text file ทั่วไปก็ใช้กับ Git ได้เหมือนกัน


☁️ ทำไมถึงไม่ใช้แค่ Google Drive หรือ Dropbox#

บางคนอาจถามว่า แล้ว Google Drive หรือ Dropbox ก็มี version history นี่ ต่างกันยังไง?

Google Drive และ Dropbox มี version history บ้าง แต่ไม่ได้รู้ว่า “ทำไมถึงเปลี่ยน” ไม่มี commit message (ข้อความอธิบายการเปลี่ยนแปลง), ไม่รองรับ branching หรือ merge และไม่ได้ออกแบบมาสำหรับโค้ดโดยเฉพาะ

Git ต่างกันตรงที่ทุก commit มี message อธิบายว่าเปลี่ยนอะไร เพราะอะไร และเราเลือกได้เองว่าจะบันทึกเมื่อไหร่ Git ยังดูความต่างระหว่างเวอร์ชันได้ด้วย (เรียกว่า diff) และรองรับการทำงานหลายคนในโปรเจกต์เดียวกัน

ถ้าเปรียบ: Google Drive คือกล้องถ่ายรูปอัตโนมัติทุก 5 นาที ส่วน Git คือไดอารี่ที่คุณเขียนเองว่าวันนี้ทำอะไรไปบ้าง


📚 แนวคิดพื้นฐานที่ต้องรู้#

ก่อนลงมือใช้ มีคำศัพท์ไม่กี่คำที่ต้องรู้จัก

Repository (Repo) — โฟลเดอร์โปรเจกต์ที่ Git ดูแลอยู่ มองว่าคือ “กล่องที่ Git ติดตามทุกอย่างภายใน”

Commit — การบันทึกสถานะของโปรเจกต์ ณ จุดหนึ่ง แต่ละ commit มี ID เฉพาะและ message อธิบายว่าทำอะไร

Branch — เส้นทางการพัฒนาแยกออกมา สมมติอยากทดลองฟีเจอร์ใหม่โดยไม่กระทบโค้ดหลัก ก็สร้าง branch ใหม่ แล้วค่อย merge กลับเมื่อพร้อม

Remote — สำเนาของ repo ที่อยู่บนเซิร์ฟเวอร์ (เช่น GitHub, GitLab) ใช้สำหรับ backup และแชร์งานกับทีม


🚀 เริ่มต้นใช้ Git จริง ๆ#

ติดตั้ง Git#

ไปดาวน์โหลดได้ที่ git-scm.com ↗ มีทั้งสำหรับ Windows, macOS, และ Linux

ตรวจสอบว่าติดตั้งแล้วโดยรันใน terminal:

git --version
bash

ถ้าขึ้นเลขเวอร์ชัน แปลว่าพร้อมใช้แล้ว

ตั้งค่าครั้งแรก#

Git ต้องรู้ว่าคุณเป็นใคร เพราะทุก commit จะบันทึกชื่อและอีเมลของคุณไว้ด้วย:

git config --global user.name "ชื่อของคุณ"
git config --global user.email "[email protected]"
bash

ทำแค่ครั้งเดียวต่อเครื่อง

สร้าง Repository แรก#

ไปที่โฟลเดอร์โปรเจกต์แล้วรัน:

git init
bash

แค่นี้โฟลเดอร์นั้นก็กลายเป็น Git repository แล้ว Git จะสร้างโฟลเดอร์ซ่อนชื่อ .git ไว้ข้างใน อย่าเผลอลบโฟลเดอร์นี้นะครับ

วงจรพื้นฐาน: Edit → Stage → Commit#

นี่คือหัวใจของ Git workflow

# ดูสถานะไฟล์ทั้งหมด
git status

# เพิ่มไฟล์เข้า staging area (เตรียม commit)
git add ชื่อไฟล์.txt

# หรือเพิ่มทุกไฟล์ที่เปลี่ยนแปลง
git add .

# บันทึก commit พร้อม message
git commit -m "เพิ่มหน้า login เบื้องต้น"
bash

Staging area คืออะไร — คือ “พื้นที่เตรียม” ก่อน commit จริง เราเลือกได้ว่าจะเอาไฟล์ไหนเข้า commit นี้บ้าง ทำให้แต่ละ commit มีความหมายชัดเจนกว่าการเซฟทุกอย่างพร้อมกัน

ดูประวัติ commit#

git log --oneline
bash

จะเห็น commit ทั้งหมดที่เคยทำ พร้อม ID และ message แต่ละอัน


✨ ข้อดีของ Git#

ย้อนหลังได้เสมอ — ถ้าแก้ไขอะไรพังไป สามารถย้อนกลับไปที่ commit ก่อนหน้าได้ ไม่มีอะไรหายถาวร

ทำงานเป็นทีมได้ — หลายคน clone repo เดียวกัน ทำงานบน branch ของตัวเอง แล้วค่อย merge เข้ามา Git จะแจ้งให้รู้เมื่อเกิด conflict แล้วให้เราเลือกว่าจะเอาโค้ดส่วนไหน

รู้ว่าใครทำอะไร — ทุก commit มีชื่อคนทำ, เวลา, และ message ทำให้ตามย้อนกลับได้เสมอว่าใครแก้อะไร

ทำงาน offline ได้ — ต่างจากระบบบางตัวที่ต้องเชื่อมเซิร์ฟเวอร์ตลอด Git ทำงานได้บนเครื่องเลย แล้วค่อย push ขึ้น remote ทีหลัง


⚠️ ข้อเสียหรือสิ่งที่ต้องระวัง#

ช่วงแรกต้องปรับตัว (learning curve) — command และ concept แรก ๆ อาจดูซับซ้อน โดยเฉพาะ staging area และ branch ค่อย ๆ เรียนทีละอย่างก็ไม่ยาก แต่ถ้าพยายามจำทุกอย่างพร้อมกันตั้งแต่แรก อาจสับสนได้

Merge conflict — เมื่อสองคนแก้ไขส่วนเดียวกันในไฟล์เดียว Git จะไม่รู้ว่าจะเอาอันไหน ต้องมาแก้ด้วยมือ สำหรับมือใหม่อาจดูน่ากังวลในครั้งแรก แต่พอเจอบ่อย ๆ จะเริ่มรู้สึกว่า Merge conflict ไม่ได้น่ากลัวอย่างที่คิด

Binary files ไม่ค่อยเหมาะ — Git เก่งเรื่อง text file แต่ถ้าเป็นไฟล์ใหญ่อย่าง รูปภาพ, วิดีโอ, หรือไฟล์ binary — Git จะเก็บทุก version ไว้ ทำให้ repo ใหญ่ขึ้นเรื่อย ๆ มีเครื่องมือเสริมอย่าง Git LFS มาช่วยแก้ปัญหานี้


🎯 เมื่อไหร่ที่ควรใช้ Git#

ควรใช้เมื่อ:

  • โปรเจกต์ที่มีโค้ด — ไม่ว่าจะทำคนเดียวหรือเป็นทีม
  • งานเขียน เช่น บทความ, documentation ที่เป็น text file
  • config file ต่าง ๆ ที่อยากติดตามการเปลี่ยนแปลง
  • ทุกครั้งที่อยากมี “undo” ที่เชื่อถือได้มากกว่า Ctrl+Z

ไม่จำเป็นต้องใช้ Git เมื่อ:

  • ไฟล์ใหญ่มากที่ไม่ใช่ text (รูป, วิดีโอ) — ใช้ storage เฉพาะทางดีกว่า
  • งานที่ทำครั้งเดียวจบและไม่ต้องการประวัติย้อนหลัง

📝 สรุป#

Git ไม่ได้เป็นแค่เครื่องมือของโปรแกรมเมอร์ — นักเขียน, นักออกแบบ, หรือใครก็ตามที่ทำงานกับไฟล์ text ก็ใช้ได้ Git คือนิสัยการทำงานที่ช่วยให้เราไม่ต้องกลัวการเปลี่ยนแปลง เพราะรู้ว่าย้อนกลับได้เสมอ

เริ่มจากโปรเจกต์เล็ก ๆ คนเดียวก่อนก็ได้ แค่ git init, git add, git commit สามคำนี้ใช้ได้จริงแล้ว

เมื่อรู้สึกคุ้นเคยกับสามคำนี้แล้ว ก็ถึงเวลาเพิ่มพลังให้กับ workflow — บทต่อไปในซีรีส์นี้จะพูดเรื่อง Branch และ Merge ซึ่งเป็นจุดที่ Git ทำให้ทำงานหลายไอเดียพร้อมกันได้โดยไม่ยุ่งกัน

😎 ☕

Code, coffee, and calm — the holy trinity of a good day. ☕

Git คืออะไร และทำไมถึงเปลี่ยนชีวิตนักพัฒนา
Author Coffee Stack
Published at 7 มิถุนายน 2026