Git คืออะไร?
จากบทความเรื่อง Version Control คืออะไร? ที่ผ่านมา เราได้เรียนรู้ว่า Version Control คือ ระบบที่บันทึกการเปลี่ยนแปลงของไฟล์ตามช่วงเวลาต่าง ๆ ที่ช่วยให้เราสามารถย้อนกลับไปดูข้อมูลก่อนหน้าและเปรียบเทียบการเปลี่ยนแปลงระหว่างเวอร์ชันต่าง ๆ ของไฟล์ได้
ในบทความนี้ เราจะมาเรียนรู้เกี่ยวกับ Git ซึ่งเป็น Distributed Version Control System ที่เป็นที่นิยมในวงการ Software Development มากที่สุดในปัจจุบัน และลองเริ่มต้นใช้งาน Git กันดู
ประวัติของ Git
Git ถูกสร้างขึ้นมาตั้งแต่ปี 2005 โดยมีจุดเริ่มต้นมาจากการที่ BitKeeper ซึ่งเป็น VCS ที่ใช้ในการพัฒนา Linux Kernel ได้ยกเลิกการใช้งานฟรี ทำให้ผู้สร้าง Linux Kernel อย่าง Linus Torvalds ต้องพัฒนา VCS ขึ้นมาใหม่ เพื่อใช้ใน Linux Kernel ต่อไป จึงได้มี Git เกิดขึ้นมาให้เราใช้งานกันจนถึงทุกวันนี้นั่นเองครับ
ปัจจุบัน Linux Kernel ยังคงใช้ Git เป็น VCS อยู่ และมีการ Commit ไปยัง Git Repository ของ Linux Kernel มากกว่า 1 ล้านครั้งแล้ว
Linux Kernel Development History | Gource on YouTube
มาเริ่มต้นใช้งาน Git กัน!
เราต้องติดตั้ง Git ลงในเครื่องของเราก่อน โดยเข้าไปดาวน์โหลดได้ที่ https://git-scm.com/downloads
หลังจากติดตั้ง Git เรียบร้อยแล้ว เรามาลองตรวจสอบเวอร์ชันของ Git ในเครื่องของเรากัน
bashgit --version
ผลลัพธ์ที่ได้จะเป็นเวอร์ชันของ Git ที่เราติดตั้งไว้ในเครื่อง อย่างของผมเป็นเวอร์ชัน 2.39.3
git version 2.39.3 (Apple Git-146)
มาถึงตรงนี้ เราสามารถเริ่มต้นใช้งาน Git ได้แล้ว!
โดยเราลองสร้างโฟลเดอร์ใหม่ขึ้นมาชื่อ
hello-git
และเข้าไปในโฟลเดอร์นั้นbash# สร้างโฟลเดอร์ใหม่ mkdir hello-git # เข้าไปในโฟลเดอร์ที่สร้างไว้ cd hello-git
shell# สร้างโฟลเดอร์ใหม่ mkdir hello-git # เข้าไปในโฟลเดอร์ที่สร้างไว้ cd hello-git
PowerShell# สร้างโฟลเดอร์ใหม่ New-Item -Name "hello-git" -Type Directory # เข้าไปในโฟลเดอร์ที่สร้างไว้ Set-Location -Path "hello-git"
ใช้คำสั่ง
git init
ที่โฟลเดอร์hello-git
เพื่อสร้าง Git Repository ใหม่ในโฟลเดอร์นี้bash# สร้าง repository ใหม่ git init
ถ้าสำเร็จ จะได้ผลลัพธ์คล้าย ๆ แบบนี้
Initialized empty Git repository in <directory ของคุณ>/hello-git/.git/
จากนั้นเราลองสร้างไฟล์ใหม่ขึ้นมาในโฟลเดอร์ ชื่อ
readme.txt
และเขียนข้อความอะไรก็ได้ลงไปในไฟล์นั้น📁 hello-git ├─ 📄 readme.txt
plaintextสวัสดี Git
เมื่อสร้างไฟล์สำเร็จแล้ว เราสามารถเพิ่มไฟล์เข้า staging area ได้ด้วยคำสั่ง
git add
bash# เพิ่มไฟล์เข้า staging area git add .
NOTE
คำสั่ง
git add .
จะเป็นการเพิ่มไฟล์ทั้งหมดในโฟลเดอร์เข้า staging area หากคุณต้องการเพิ่มไฟล์แค่เฉพาะบางไฟล์ สามารถใช้คำสั่งgit add <ชื่อไฟล์>
แทนได้ต่อมาเราจะทำการตรวจสอบสถานะของไฟล์ที่อยู่ใน staging area ด้วยคำสั่ง
git status
bashgit status
ผลลัพธ์ที่ได้จะเป็นดังนี้ จะสังเกตเห็นว่าไฟล์ readme.txt ถูกเพิ่มเข้า staging area แล้ว
On branch main No commits yet Changes to be committed: (use "git rm --cached <file>..." to unstage) new file: readme.txt
เมื่อไฟล์อยู่ใน staging area แล้ว เราสามารถทำการ commit ไฟล์ไปยัง Git Repository ของเราได้ด้วยคำสั่ง
git commit
WARNING
แต่ว่าก่อนที่จะ commit ถ้าคุณยังไม่เคยตั้งชื่อและอีเมลของคุณมาก่อน คุณจะต้องใช้คำสั่ง
git config --global user.name "Your Name"
เพื่อตั้งชื่อ git ของคุณและ
git config --global user.email "you@example.com"
เพื่อตั้งอีเมล git ของคุณก่อนนะ(การ config นี้ทำแค่เพียงครั้งเดียวก็พอ เพื่อให้ git จดจำว่าคุณคือใคร)
bash# Commit ไฟล์ที่อยู่ใน staging area git commit -m "create readme.txt"
เมื่อ commit สำเร็จ จะได้ผลลัพธ์ดังนี้
[main (root-commit) f8d4d4f] create readme.txt 1 file changed, 1 insertion(+) create mode 100644 readme.txt
มาถึงตอนนี้เราได้ทำการ commit ไฟล์ readme.txt ไปยัง Git Repository ของเราแล้ว!
โดยเราจะลองดูประวัติการ commit ของเราด้วยคำสั่ง
git log
bashgit log
ผลลัพธ์ที่ได้จะเป็นดังนี้
commit f8d4d4fa20089b6482d4b45eacc3b56d89ec1d93 (HEAD -> main) Author: euro-at-ttss <wachirawitch@tt-ss.net> Date: Sun Mar 24 00:39:50 2024 +0700 create readme.txt
สรุป
ในบทความนี้ เราได้เรียนรู้การใช้งาน Git ในเบื้องต้น จากการสร้าง Git Repository ใหม่ขึ้นมา และได้ลองทำการ commit ไฟล์ readme.txt
ไปยัง Repository ของเราแล้ว ในบทความถัดไปเราจะมาอธิบายเกี่ยวกับ Git common terms ที่คุณควรรู้ เช่น คำว่า commit คืออะไร, staging area คืออะไร และอื่น ๆ อีกมากมาย