By: DH Team
อัปเดตล่าสุด March 4, 2024
Git คือสกิลที่โปรแกรมเมอร์ทุกคนต้องรู้เลยก็ว่าได้ครับ ก่อนที่เราจะไปทำความรู้จักกับ Git และ GitHub เครื่องมือสุดแจ่มและมีประโยชน์ในงานด้าน Software Development มาก ๆ สองตัวนี้ ว่าคืออะไร มีประโยชน์ยังไง ทำไมโปรแกรมเมอร์ทุกคนต้องรู้และใช้งานเป็น เราไปดูปัญหากันก่อนครับ
ขอย้อนกลับไปวิธีดั้งเดิมแต่ก่อนนะครับ โดยผมขอยกกรณีศึกษาขึ้นมา 2 ตัวอย่างนะครับ
กรณีศึกษา 1: สมัยก่อน เมื่อเราเขียนโค้ดเสร็จ เราอาจจะตั้งชื่อไฟล์ เช่น project.py เสร็จแล้วเมื่อเราแก้โค้ดเรา เราก็ save as เป็นไฟล์ใหม่ชื่อ project_final.py หรือเปลี่ยนไฟล์ไปเรื่อย ๆ ตามเวอร์ชันของโปรเจคท์ จนสุดท้ายทำเองงงเอง ไม่ final สักที ไม่รู้ว่าตัวไฟล์เวอร์ชันล่าสุดคือตัวไหนกันแน่ แถมยังเปลืองพื้นที่ความจำในเครื่องคอมของเราอีก
กรณีศึกษา 2: เราทำงานร่วมกับโปรแกรมเมอร์ท่านอื่น เราก็อปปี้ไฟล์ส่งใน Flash Drive ให้กันหรือส่งทางเมล์หรือทางไหนก็ตามให้กันไปมา ซึ่งวิธีการแบบนี้ถ้าภาษาฝรั่งมักจะบอกว่า "old school" หรือโบราณไปแล้ว
นี่เป็นเพียงแค่ 2 กรณีศึกษาที่เราได้ยกมา (จริง ๆ มีหลายรูปแบบกว่านี้) ดังนั้นปัญหาเหล่านี้จะหมดไปด้วยการเข้ามาของพระเอกเราในวันนี้คือ Git & GitHub
Git คือ VCS (Version Control System) ที่ได้รับความยอดนิยมสูงสุดของเหล่าโปรแกรมเมอร์ โดยทาง Linus Troval ผู้พัฒนา Linux ยังเป็นคนคิดค้นและพัฒนา Git อีกด้วยในปี 2005 (ต้องบอกว่าแกอัจฉริยะและสร้างประโยชน์ให้แก่วงการโปรแกรมเมอร์มากมายจริง ๆ ครับ)
หน้า Official Website ของ Git
นี่คือประโยชน์หลัก ๆ ของ Git (จริง ๆ มีหลายข้อกว่านี้)
Note: สำหรับผู้ที่มีพื้นฐานพอสมควรแล้ว อยาก recap คำสั่งของ Git ก็สามารถอ่านเพิ่มเติมในบทความ Top 10 Git Commands ที่นักเขียนโปรแกรมต้องรู้
จะเห็นได้ว่า Git และ GitHub นั้นเป็นคนละตัวกัน โดย GitHub คือ ผู้ให้บริการ ที่ทำหน้าที่เก็บโปรเจคท์หรือเก็บซอร์สโค้ดของเรานั่นเองครับไว้บนคลาวด์หรือไว้บนออนไลน์นั่นเอง โดยต้องมีการเชื่อมต่อ internet ถึงจะต้องใช้ GitHub ได้ แต่ Git นั้นไม่ต้อง
หน้า Official Website ของ GitHub
ในบทความนี้จะแบ่งการติดตั้งเป็น 2 รูปแบบคือติดตั้งผ่านโปรแกรมไฟล์ Installer และติดตั้งผ่าน Terminal ใครสะดวกใช้แบบไหนก็จัดได้ตามสะดวกครับ
การติดตั้งแบบนี้จะเหมาะสำหรับมือใหม่ เพราะว่าอาจจะยังไม่คุ้นชินกับ Terminal หรือ Command Prompt เท่าไหร่นัก โดยไปที่ลิงก์ Git Official Website เลือกหลังจากดาวน์โหลดเสร็จแล้ว การติดตั้งก็ไม่มีอะไรมาก กด next ไปเรื่อย ๆ ในไม่กี่ขั้นตอน
หรือถ้าสาวก macOS ก็ติดตั้งสุดง่ายผ่าน Homebrew
$ brew install git
หรือถ้าสาวก Linux ก็ติดตั้งสุดง่ายผ่าน dnf หรือ yum
$ sudo dnf install git
หรือ
$ sudo yum install git
เมื่อติดตั้งเสร็จแล้วก็เช็ค version ได้ โดยเปิด terminal ขึ้นมา
git --version
จะได้เวอร์ชันของ Git
git version 2.32.0
หลังจากติดตั้งเสร็จสิ้นแล้ว เราจะมาทำการคอนฟิก Git เพิ่มเติมอีกนิดครับ โดยเราจะเพิ่มชื่อ User และ Email เข้าไป เวลาที่ commit เราจะได้รู้ว่าใครเป็นคนทำ transaction นั้น ๆ โดยให้เราเปิด terminal ขึ้นมา แล้วรันคำสั่ง
$ git config --global user.name "Your Name"
$ git config --global user.email "your [email protected]"
หลังจากคอนฟิก User เสร็จเรียบร้อย ต่อมาเราจะมาสร้าง repository (เรียกสั้น ๆ ว่า repo) ซึ่ง repository ก็เปรียบเสมือนโฟลเดอร์ที่เก็บซอร์สโค้ดหรือโปรเจคท์ของเรานั่นเองครับ
ให้ไปที่ github.com จากนั้นก็จัดการ Sign up เพื่อลงทะเบียนให้ใช้ GitHub หรือถ้าใครที่สมัครไว้แล้วก็ Sign in ได้เลยครับ
กำหนดชื่อ Repo และตั้งค่าแบบ private
เสร็จแล้วจะได้ Repo เปล่า ๆ เรียบร้อย
ซึ่งโครงสร้าง URL ของ repository จะเป็นแบบนี้
https://github.com/GitHubUserName/your-project-repo.git
เราจะได้ Repo URL ของโปรเจคท์นี้คือ
https://github.com/SonnyDH/my-first-project.git
การ clone ใน Git ก็คือการที่เราก็อปปี้ repository ที่อยู่บน GitHub มาใช้งานนั่นแหละครับ โดยเราสามารถ clone ด้วยคำสั่ง. git clone <repository-url> โดยให้เราเปิด terminal ขึ้นมาแล้วรันคำสั่งดังต่อไปนี้ (เปลี่ยน repository-url เป็นของตัวเองนะครับ) พร้อมทั้ง cd ไปที่ path ที่เราต้องการเก็บโปรเจคท์ เช่น Drive C, D หรือ Desktop ได้ตามต้องการ
$ cd desktop
จากนั้น clone ได้เลย
$ git clone https://github.com/SonnyDH/my-first-project.git
เสร็จแล้ว cd ไปที่โปรเจคท์ที่เราได้ clone มา
$ cd my-first-project
ตอนนี้เราก็สามารถเข้าถึง root directory และใช้งานโปรเจคท์ที่เรา clone มาจาก GitHub เรียบร้อย
เมื่อเข้าใช้งาน repository ที่ได้ clone มาแล้ว ทีนี้เราจะได้เห็นพลังของ Git กันแล้วครับ ว่ามันสุดยอดแค่ไหน ก่อนอื่นให้ลองสร้างไฟล์อะไรสักไฟล์ขึ้นมาใหม่ ในที่นี้ผมจะลองสร้างไฟล์อะไรสักอย่างที่เกี่ยวกับ Python ขอใช้ชื่อว่า hello_world.py
# hello_world.py
print("Hello, World")
ในไฟล์นี้ก็ไม่ได้มีอะไรพิเศษหรือหวือหวาอะไร เป็นเพียงแค่ข้อความ "Hello, World" ธรรมดา
ตอนนี้เราได้ทำการเพิ่มไฟล์เข้ามาใน repo ของเราแล้วเพื่อประเดิมไฟล์แรก จากนั้นจะทำการ track ตัวโปรเจคท์ของเราแล้ว ด้วยคำสั่ง
$ git init
ลอง git status ดู จะเห็นว่ายังไม่มีอะไรเปลี่ยนแปลง "nothing to....." เพราะว่าเรายังไม่ได้ทำอะไรกับโค้ดหรืออัปเดตอะไรนั่นเอง
$ git status
On branch main
Your branch is up to date with 'origin/main'.
nothing to commit, working tree clean
จากนั้นเพิ่มไฟล์เข้าไปใน repo เพื่อให้เราสามารถ track ซอร์สโค้ดได้ ซึ่งในที่นี้ก็คือไฟล์ hello_world.py
$ git add hello_world.py
หรือจะเพิ่มทุกไฟล์ในครั้งเดียวด้วย "dot" ก็ได้เช่นกัน
$ git add .
จากนั้นทำการ commit โค้ดเข้าไปใน Staging Area (ซึ่งมันก็คือพื้นที่ที่จะเก็บซอร์สโค้ดใน local computer ของเราโดยที่ยังไม่ได้ push ไป Remote ครับ)
$ git commit -m "add hello_world.py file"
ซึ่งการ commit เปรียบเสมือนกับ time machine หรือ snapshot ที่ทำให้เราย้อนเวลา เพื่อกลับมาดูว่าตอนนั้นเราได้ทำอะไรลงไปกับโค้ดชุดนั้น ซึ่งสิ่งที่เราทำก็คือเพิ่มไฟล์ "hello_world.py" เข้าไปใน repo ของเรานั่นเอง ดังนั้น การเขียน commit message ก็ต้องเขียนให้สื่อความหมายและเข้าใจได้ง่ายว่าเราทำอะไรกับโค้ดของเราครับ
สเต็ปถัดไปเราจะมาเริ่มนำโปรเจคท์ของเราขึ้น GitHub อีกครั้ง โดยจะมีขั้นตอนดังต่อไปนี้
1. กำหนดชื่อ branch
ทำการกำหนดชื่อ branch ให้เป็น main branch (ตัว default คือ master)
$ git branch -M main
2. Add origin
คำสั่งนี้จะเชื่อมโยง local repo ในเครื่องของเราเข้ากับ remote repo ที่อยู่บน GitHub ซึ่ง origin เป็นชื่อมาตรฐานที่ใช้เรียก remote repo และ URL ก็คือที่อยู่ของ repository บน GitHub ที่เราต้องการ push โค้ดขึ้นไป
$ git remote add origin https://github.com/SonnyDH/my-first-project.git
3. Push
ทำการ push หรือส่งโปรเจคท์ของเราขึ้น GitHub ได้เลย
$ git push -u origin main
เป็นอันเสร็จสิ้น เมื่อกด refresh ในหน้า GitHub repo ของเราดูจะพบว่า ตอนนี้ไฟล์ "hello_world.py" ได้ถูกเพิ่มเข้ามาใน my-first-project ซึ่งเป็น repository ของเราเรียบร้อย
ก็เป็นอันเสร็จสิ้นในส่วนของ Git และ GitHub นะครับ
เปิดโลกการเขียนโปรแกรมและ Software Development ด้วย online courses ที่จะพาคุณอัพสกิลและพัฒนาสู่การเป็นมืออาชีพ เรียนออนไลน์ เรียนจากที่ไหนก็ได้ พร้อมซัพพอร์ตหลังเรียน
เรียนเขียนโปรแกรม