Coding Fundamentals

#1 GitHub 101

#1 GitHub 101

ปัญหา

  • การอัพเดตการแก้ไขงาน คล้ายๆตอนเราทำงานออกแบบแล้วเราเซฟไฟล์ไว้หลายเวอร์ชัน เราจำไม่ได้ว่าแต่ละเวอร์ชันเราแก้ไขไปบ้าง ในทำนองเดียวกับกาารแก้ไขโค้ดเมื่อเราทำการพัฒนาแก้ไขโค้ดจากจุดเดิมต่อไปเรื่อยแล้วดันเกิดข้อผิดพลาดอยากาย้อนกลับไปจุดก่อนหน้านี้ Git จะช่วยแก้ปัญหาเหล่านี้

Git ≠ GitHub

  • Git คือ ระบบบันทึกประวัติของโปรเจกต์
  • GitHub คือ บ้านออนไลน์ที่เอาโปรเจกต์ Git ไปเก็บ

Git ทำงานกับประวัติไฟล์ ส่วน GitHub เป็นบริการออนไลน์ที่ใช้เก็บและทำงานร่วมกับโปรเจกต์ Git

Git คือ

Git ทำการเก็บประวัติการกระทำ ช่วยเก็บประวัติว่าไฟล์เปลี่ยนอย่างไรในแต่ละช่วง

สมมติ เรามีไฟล์ เอกสาร.doc

เอกสาร.doc

10.00 → เพื่มรายการ

12.00 → เพิ่มราคา

13.00 → แก้แล้วพัง 💥

ส่วน GitHub คือสถานที่ออนไลน์ที่เราสามารถเอาโปรเจกต์ที่ใช้ Git ไปเก็บได้

GitHub คือ

📄 ไฟล์ .doc = งานของเรา

🕰️ Version History ของไฟล์ = Git

☁️ Google Drive ที่เอางานและประวัติไปเก็บออนไลน์ ≈ GitHub

ระหว่าง Git กับ GitHub ตัวไหนช่วยให้เรารู้ว่า “ก่อนพัง โค้ดหน้าตาเป็นยังไง”?


Repository (Repo) คือ ?

  • Repository คือโปรเจกต์ทั้งก้อน
  • Repository หรือเรียกสั้น ๆ ว่า Repo ไม่ได้มีแค่ไฟล์ในโฟลเดอร์ แต่ Git ยังจำ ประวัติการเปลี่ยนแปลงของโปรเจกต์นี้ ด้วย

Repository คือ

Repository และ Github


Commit คือ ?

Commit จึงเหมือน จุดเซฟของโปรเจกต์ ณ ตอนนั้น

Commit คือ

Commit คือื

สมมติกำลังเขียนโค้ดทำระบบ:
09:00 ระบบส่ง Email ใช้งานได้
10:00 เพิ่ม AI ให้ระบบ
11:00 แก้โค้ดเพิ่ม
12:00 💥 ระบบพัง

จุดปลอดภัยที่สามารถย้อนกลับมาได้ คุณคิดว่าควร Commit ตอนไหน?
A) 09:00 ตอนระบบ Email ใช้งานได้
B) 12:00 หลังระบบพัง
C) ไม่ต้อง Commit จนกว่าโปรเจกต์ทั้งหมดจะเสร็จ


Commit ต่างจาก Save ยังไง ?

  • Save = เซฟไฟล์ปัจจุบัน

💾 Save ( Ctrl + S ) ➜ ไฟล์ล่าสุดในคอมถูกบันทึก

  • Commit = สร้างจุดในประวัติของโปรเจกต์

📄 main.js ➜ แก้โค้ด ➜ Ctrl + S ➜ 💾 ไฟล์ถูก Save ➜ Git Commit ➜ 📸 เก็บจุดสำคัญของโปรเจกต์ “ระบบส่ง Email ใช้งานได้”

บนระบบเราจะเห็นเป็น

● เพิ่มระบบส่ง Email 
│ 
● เพิ่มระบบอ่าน Google Sheet 
│ 
● สร้างโปรเจกต์ครั้งแรก

แต่ละ ● คือ Commit หนึ่งจุด


สรุปภาพรวม Git, GitHub, Repository, Commit

  • GitHab เปรียบเสมือน คลังเก็บ (Warehouse) ในการเก็บโปรเจกต์
  • 1 โปรเจกต์ คือ 1 Repository / 1 Repo เปรียบเสมือน กล่องเก็บของ ที่เก็บสิ่งของที่จำเป็นต่องานนั้นทั้งหมดของเราไว้
  • ภายใน 1 โปรเจกต์ เราสามารถทำการเก็บประวัติ การแก้ไข/ปรับปรุง สิ่งที่ต่างๆที่เราทำกับโปรเจกต์ ซึ่งสิ่งนี้เรียกว่า Git ในการเก็บประวัติเราในแต่ละจุดที่ต้องการ เราจะต้องทำการ Commit ​โดยการ Commit จะเป็นระบุจุดเช็คการเปลี่ยนแปลงว่าแต่ละจุดเช็คเราทำการเปลี่ยนแปลงอะไรไปบ้างกับโปรเจกต์

← กลับไปหน้า Notes

บทความที่เกี่ยวข้อง