LEVEL 0 · ปูพื้นจากศูนย์
Git คืออะไร & การติดตั้ง
ลองนึกถึงตอนเขียนรายงานแล้วเซฟไฟล์เป็น report_final.doc, report_final2.doc, report_final_จริงๆ.doc — นั่นคือการทำ version control ด้วยมือ ที่พังง่ายและไม่มีทางรู้ว่าแต่ละไฟล์ต่างกันตรงไหน Git คือเครื่องมือที่ทำสิ่งนี้ให้อย่างเป็นระบบ: บันทึกทุกช่วงเวลาของโปรเจกต์ไว้ พร้อมข้อมูลว่าใครเปลี่ยนอะไร เมื่อไหร่ และเพราะอะไร แล้วย้อนกลับไปจุดใดก็ได้
สิ่งที่ทำให้ Git ทรงพลังกว่าการเซฟไฟล์ซ้ำ ๆ คือมันถูกออกแบบมาเพื่อ การทำงานหลายคนพร้อมกัน และ การทดลองโดยไม่กลัวพัง — แตกเส้นทางการพัฒนาออกไปลองของใหม่ แล้วรวมกลับเข้ามาเมื่อพร้อม โดยของเดิมไม่เคยเสียหาย
1.1 Distributed — ทุกเครื่องมีประวัติครบ
จุดต่างสำคัญจากระบบรุ่นเก่า: Git เป็นแบบ กระจายศูนย์ เมื่อคุณ clone โปรเจกต์มา คุณไม่ได้ได้แค่ไฟล์ล่าสุด แต่ได้ ประวัติทั้งหมดติดมาในเครื่องด้วย นั่นแปลว่าการ commit, ดูประวัติ, สลับเวอร์ชัน ทำได้ทันทีโดยไม่ต้องต่อเน็ต และไม่มี "เซิร์ฟเวอร์กลาง" จุดเดียวที่ถ้าพังแล้วงานหายหมด
1.2 ติดตั้งและตั้งค่าครั้งแรก
หลังติดตั้ง Git (จาก git-scm.com หรือ package manager) สิ่งแรกที่ต้องทำคือบอก Git ว่าคุณเป็นใคร เพราะทุก commit จะถูกประทับชื่อและอีเมลนี้ไว้ถาวร:
$ git config --global user.name "Khaofang"
$ git config --global user.email "you@example.com"
$ git config --global init.defaultBranch main # ตั้งชื่อ branch แรกเป็น main--global หมายถึงตั้งค่านี้ให้ทุกโปรเจกต์ในเครื่อง ตั้งครั้งเดียวพอ
1.3 สร้าง repository แรก
คำสั่ง git init เปลี่ยนโฟลเดอร์ธรรมดาให้เป็นโปรเจกต์ที่ Git เฝ้าดู — มันสร้างโฟลเดอร์ซ่อนชื่อ .git/ ขึ้นมา ซึ่งเก็บประวัติทั้งหมด (บทที่ 12 จะเปิดดูข้างใน):
$ git init
Initialized empty Git repository in /myproject/.git/
$ git status
On branch main · No commits yet✅ สรุปบทที่ 1 — Git = เครื่องบันทึกทุกช่วงเวลาของโปรเจกต์ พร้อมเหตุผลและผู้รับผิดชอบ · เป็นระบบกระจายศูนย์ ทุก clone มีประวัติครบในตัว · ตั้งชื่อ/อีเมลด้วย
git configครั้งเดียว · เปิดโปรเจกต์ด้วยgit init(ใหม่) หรือgit clone(ที่มีอยู่)