ใช้งาน Git & GitHub สำหรับผู้เริ่มต้น ในปี 2024

   By: DH Team

   อัปเดตล่าสุด March 4, 2024

ใช้งาน Git & GitHub สำหรับผู้เริ่มต้น ในปี 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 คืออะไร?

Git คือ VCS (Version Control System) ที่ได้รับความยอดนิยมสูงสุดของเหล่าโปรแกรมเมอร์ โดยทาง Linus Troval ผู้พัฒนา Linux ยังเป็นคนคิดค้นและพัฒนา Git อีกด้วยในปี 2005 (ต้องบอกว่าแกอัจฉริยะและสร้างประโยชน์ให้แก่วงการโปรแกรมเมอร์มากมายจริง ๆ ครับ)


หน้า Official Website ของ Git


ประโยชน์ของ Git

นี่คือประโยชน์หลัก ๆ ของ Git (จริง ๆ มีหลายข้อกว่านี้)

  • ช่วยให้จัดการเวอร์ชันของโค้ดได้ง่ายและสะดวก มีประสิทธิภาพ
  • สามารถย้อนกลับไปสู่เวอร์ชันของโค้ดก่อนหน้าได้
  • ช่วยให้การทำงานร่วมกับ developers หรือ programmers ในทีมได้สะดวกและมีประสิทธิภาพ
  • ฯลฯ

Note: สำหรับผู้ที่มีพื้นฐานพอสมควรแล้ว อยาก recap คำสั่งของ Git ก็สามารถอ่านเพิ่มเติมในบทความ Top 10 Git Commands ที่นักเขียนโปรแกรมต้องรู้


GitHub คืออะไร?

จะเห็นได้ว่า Git และ GitHub นั้นเป็นคนละตัวกัน โดย GitHub คือ ผู้ให้บริการ ที่ทำหน้าที่เก็บโปรเจคท์หรือเก็บซอร์สโค้ดของเรานั่นเองครับไว้บนคลาวด์หรือไว้บนออนไลน์นั่นเอง โดยต้องมีการเชื่อมต่อ internet ถึงจะต้องใช้ GitHub ได้ แต่ Git นั้นไม่ต้อง


หน้า Official Website ของ GitHub


ดาวน์โหลด ติดตั้ง Git

ในบทความนี้จะแบ่งการติดตั้งเป็น 2 รูปแบบคือติดตั้งผ่านโปรแกรมไฟล์ Installer และติดตั้งผ่าน Terminal ใครสะดวกใช้แบบไหนก็จัดได้ตามสะดวกครับ

ติดตั้งผ่านโปรแกรมไฟล์ Installer

การติดตั้งแบบนี้จะเหมาะสำหรับมือใหม่ เพราะว่าอาจจะยังไม่คุ้นชินกับ Terminal หรือ Command Prompt เท่าไหร่นัก โดยไปที่ลิงก์ Git Official Website เลือกหลังจากดาวน์โหลดเสร็จแล้ว การติดตั้งก็ไม่มีอะไรมาก กด next ไปเรื่อย ๆ ในไม่กี่ขั้นตอน


ติดตั้งผ่าน Terminal

หรือถ้าสาวก macOS ก็ติดตั้งสุดง่ายผ่าน Homebrew

$ brew install git


หรือถ้าสาวก Linux ก็ติดตั้งสุดง่ายผ่าน dnf หรือ yum

$ sudo dnf install git

หรือ

$ sudo yum install git


เช็คเวอร์ชัน Git

เมื่อติดตั้งเสร็จแล้วก็เช็ค version ได้ โดยเปิด terminal ขึ้นมา

git --version


จะได้เวอร์ชันของ Git 

git version 2.32.0


คอนฟิก Git

หลังจากติดตั้งเสร็จสิ้นแล้ว เราจะมาทำการคอนฟิก Git เพิ่มเติมอีกนิดครับ โดยเราจะเพิ่มชื่อ User และ Email เข้าไป เวลาที่ commit เราจะได้รู้ว่าใครเป็นคนทำ transaction นั้น ๆ  โดยให้เราเปิด terminal ขึ้นมา แล้วรันคำสั่ง

$ git config --global user.name "Your Name"
$ git config --global user.email "your [email protected]"


สร้าง GitHub Repo

หลังจากคอนฟิก 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 โปรเจคท์

การ 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 นะครับ

สรุป

  • Git คือ Version Control System (VCS) ที่ใช้สำหรับติดตามเวอร์ชัน การเปลี่ยนแปลงของซอร์สโค้ด รวมไปถึงช่วยให้การทำงานร่วมกันระหว่าง programmers, developers ได้ดีมีประสิทธิภาพมาก เป็นเครื่องมือที่นักพัฒนาทุกคนต้องรู้และใช้เป็น คือกลายเป็นมาตรฐานของงานด้าน Software Development ไปแล้ว
  • GitHub คือ ผู้ให้บริการเก็บซอร์สโค้ด หรือ hosting เก็บซอร์สโค้ดออนไลน์โดยมีเจ้าของคือไมโครซอฟต์
  • Git และ GitHub คือคนละตัวกัน แต่ใช้ทำงานร่วมกัน โดยเราควรต้องทำความเข้าใจ Git ก่อนที่จะใช้ GitHub
  • Git ทำงานใน local computer ของเรา และทำงานได้โดยไม่จำเป็นต้องมีอินเทอร์เน็ต แต่ GitHub ต้องมีการเชื่อมต่ออินเทอร์เน็ตถึงจะใช้งานได้
  • นอกจาก GitHub ซึ่งเป็นผู้ให้บริการ host ซอร์สโค้ดออนไลน์ ยังมีผู้ให้บริการอื่น ๆ นอกเหนือจากนี้ เช่น GitLab, BitBucket เป็นต้น (แต่ GitHub นิยมสุด)
  • Git มีโฟลเดอร์ที่ใช้เก็บไฟล์หรือซอร์สโค้ด ซึ่งเราเรียกส่วนนี้ว่า "repository" หรือเรียกสั้น ๆ ได้ว่า "repo"


เปิดโลกการเขียนโปรแกรมและ Software Development ด้วย online courses ที่จะพาคุณอัพสกิลและพัฒนาสู่การเป็นมืออาชีพ เรียนออนไลน์ เรียนจากที่ไหนก็ได้ พร้อมซัพพอร์ตหลังเรียน

เรียนเขียนโปรแกรม