ข้ามไปยังเนื้อหา
Tayakorn
Git Handbook

Git Handbook

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 (ที่มีอยู่)

อ่านแบบเต็มเล่ม