Press "Enter" to skip to content

Git

โครงสร้างภาพรวมการทำงาน

Git คืออะไร

Git คือ Version Control System ตัวหนื่งที่นิยมมากในสมัยนี้

Version Control คือ ระบบที่จัดเก็บการเปลี่ยนแปลงที่เกิดขึ้นกับไฟล์หนึ่งหรือหลายไฟล์เพื่อที่สามารถเรียกเวอร์ชั่นใดเวอร์ชั่นหนึ่งกลับมาดูเมื่อไรก็ได้

การใช้ Version Control System (VCS) เป็นสิ่งที่ชาญฉลาดมาก เพราะช่วยให้เราสามารถย้อนไฟล์บางไฟล์หรือแม้กระทั่งทั้งโปรเจคกลับไปเป็นเวอร์ชั่นเก่าได้ นอกจากนั้นระบบ VCS ยังจะช่วยให้เราเปรียบเทียบการแก้ไขที่เกิดขึ้นในอดีต ดูว่าใครเป็นคนแก้ไขคนสุดท้ายที่อาจทำให้เกิดปัญหา แก้ไขเมื่อไร ฯลฯ และยังช่วยให้เราสามารถกู้คืนไฟล์ที่เราลบหรือทำเสียโดยไม่ตั้งใจได้อย่างง่ายดาย

โดยสิ่งที่เราเอาไปฝากไว้บน Git เราจะเรียกว่า Repository และวิธีการทำงานจะมี Git Server รันอยู่บน Server เราสามารถเข้าถึง Git ได้ผ่าน URL ที่สร้างขึ้นมาตอนเราสร้าง Repository บน Server เช่น

Screenshot 2014-12-17 00.38.27-18

Git ไม่ใช่ตัวแรกที่ทำแบบนี้ได้ จะมียุคหนึ่งที่ SVN (Subversion) รุ่งเรือง ถือว่าเป็นจุดเริ่มต้นของ Version Control แบบกว้างขวางของโลก แต่ SVN ก็มีจุดอ่อนมากมายหลายหลาก ยกตัวอย่างเช่นการที่ต้องออนไลน์ถึงจะทำอะไรกับ Repository ได้ เป็นต้น

Git จึงถูกคิดค้นขึ้นมาเพื่อทำหน้าที่แบบเดียวกัน แต่ดีกว่าในหลายๆด้าน จนตอนนี้กลายเป็น Version Control ที่ได้รับการยกย่องว่าดีที่สุดเป็นที่เรียบร้อย ถึง SVN จะยังมีคนใช้อยู่ แต่ก็มีคนแนะนำให้ย้ายไปใช้ Git กันอยู่เรื่อยๆ

Git Hosting ที่นิยมใช้ในตอนนี้คือ github.com โดยจะมีการทำงานง่ายๆ ดังนี้

1 การสร้าง Branch เพื่อแยกส่วนการทำงานโดยดึงข้อมูลจาก Master version ณ ช่วงเวลาที่สร้าง Branch และหลังจากนั้นถ้ามีการเปลี่ยนแปลงใดๆ กับ Souce Code จะไม่ส่งผลถึง Master version

Screenshot 2014-12-16 22.03.00-242 การเพิ่ม Commit เพื่อบันทึกว่าเราได้เปลี่ยนแปลงอะไรบ้าง ใน Source Code ส่วนนั้นบ้าง

Screenshot 2014-12-16 22.08.12-25

3 การเปิด Pull Request เพื่อดูภาพรวมว่าใน Branch ที่เราได้ทำการ Commit รวมๆใว้ เปลี่ยนแปลงและแตกต่างจาก Master version อย่างไรบ้าง

Screenshot 2014-12-16 22.08.24-26

4 การตรวจสอบ Source Code ถ้ามีการทำงานเป็นกลุ่มเพื่อนร่วมทีมของเราสามารถเข้ามาตรวจสอบและสามารถซักถามได้ในข้อสงสัยต่างๆได้ โดยในส่วนนี้จะทำให้การทำงานเป็นทีมทำได้ง่ายขึ้นและ Project จะเป็นไปในทิศทางเดียวกัน

Screenshot 2014-12-16 22.08.37-27

5 การนำไปรวมไปรวมกัน Master ทำได้งานมากหลังจากที่เราได้ทำ Pull Request แล้วทุกคนในทีมมีความเห็นตรงกันว่า Branch นี้ใช้งานได้แล้วจะไม่ส่งผลกระทบทำให้เกิดปัญหา เราก็สามารถ Merge ไปรวมกับ Master version ได้เลย

Screenshot 2014-12-16 22.08.48-33

Arnon Hongklay
Arnon Hongklay

View all posts

Comments are closed.