จากบทความที่แล้วเรื่อง เริ่มต้นใช้ Git ตอนที่ 4 ติดตั้ง Git นั่นเป็นการเตรียมเครื่องเราให้พร้อมใช้งาน Git แล้วก็พักไว้ก่อน มาทำความรู้จักกับ github.com กันก่อน

คนที่ใช้ Git จำเป็นจะต้องรู้จัก github.com

github.com คืออะไร

github.com เป็นเว็บไซต์ที่ให้บริการ git server (อันที่จริงแล้ว มันไม่ใช่ git server หรอก เขาให้บริการเครื่องคอมพิวเตอร์เพื่อนร่วมทีม เฉพาะ git part โมเดลแบบ distributed SCM มันไม่มีเซิฟเวอร์   เพื่อความเข้าใจง่ายมองมันเป็น git server ละกัน)  เป็นบริการฟรีแบบมีเงื่อนไข

คือคุณสามารถใช้งานได้ฟรี แต่โปรเจ็กที่สร้างขึ้นจะต้องเป็นแบบ public เท่านั้น คือ คนอื่นสามารถเข้าไปดูโค้ด ดูดโค้ด ท่านได้ ถ้าไม่อยากให้ชาวบ้านเห็นโปรเจ็กของท่าน ก็ต้องเสียตังใช้บริการ เพื่อสร้างโปรเจ็กแบบ private แต่ก็ไม่ต้องกังวลมากหรอกครับ ต่อให้คนอื่นได้โค้ดท่านไปแต่ไม่มี data และไม่รู้ว่าใช้ทำอะไร ได้โค้ดไปก็เท่านั้น

มีบริการฟรีอีกตัวหนึ่งชื่อ bitbucket.com เป็นฟรีแบบมีเงื่อนไขเหมือนกัน bitbucket ยอมให้สร้างโปรเจ็กแบบ private ได้ไม่จำกัด แต่จำกัดเพื่อนร่วมทีมไว้ที่ 5 คนเท่านั้น ถ้าอยากขยายทีมมากกว่า 5 ก็จ่ายเงิน

ไว้ค่อยสอนเรื่อง bitbucket.com อีกที บทนี้เราพูดเรื่อง github.com

github

github.com อนุญาติให้เราสร้างที่สำหรับเก็บโปรเจ็กของเรา ศัพท์ทางเทคนิคเรียกว่า Repository หรือเรียกสั้นๆว่า Repo เรากำหนดได้ด้วยว่าจะให้ใครเข้าร่วมโปรเจ็กกับเรา หรือเราจะใช้คนเดียวก็สำเร็จประโยชน์เหมือนกัน

เราจะใช้ Source Tree ชี้มายัง Github บอกว่านี่คือสถานที่สำหรับเก็บ Git หลัก ของเรา เมื่อทำการแก้ไขไฟล์ที่เครื่อง หรือทำอะไรก็แล้วแต่กับโปรเจ็กของเราในเครื่อง เราก็ใช้ Source Tree  Push Git มายังที่นี่ (มันจะเก็บทุกสิ่งทุกอย่าง เหมือนในเครื่องเราเลย ทั้งโค้ด ทั้ง snapshot)

ถ้ามีคนร่วมโปรเจ็กเดียวกันหลายคน เราก็ให้ cloneโค้ดออกไปจาก github  หลังจากเพื่อนแก้ไขโค้ดบางอย่างเขาก็ Put ขึ้น github

เราก็ Pull สิ่งที่เปลี่ยนแปลงลงมาจาก github ทุกๆเครื่องที่ร่วมโปรเจ็กกัน โค้ดก็จะเหมือนกัน

github.com ทำหน้าที่เป็น hub ของ git

เผื่อไม่เข้าใจ ดูจากไดอะแกรมนะครับ ตัว shared repository นั่นแหละคือ github

dev1 สร้าง repo ขึ้นมาบน github แล้ว push โค้ดทั้งหมดขึ้นไปเก็บ dev2  clone โค้ดลงมาจาก github  dev3 ก็ทำเหมือน dev2

ทีนี้คนใดคนหนึ่งในทีมแก้ไขโค้ด ก็ push สิ่งที่แก้ไขขึ้น github คนที่เหลือก็ pull ลงมา ทำวนไปอย่างนี้เรื่อยๆ

โค้ดของเราจะปลอดภัยจากการฟอร์แมตเครื่อง เพราะมันถูกเก็บอยู่บน github ถ้าฟอร์แมตเครื่องก็แค่ clone โปรเจ็กลงมาจาก github ใหม่ ทุกอย่างก็จะเหมือนเดิม รวมทั้งเซฟพ้อยต์ที่เคยทำไปแล้ว ไม่มีอะไรหายแม้แต่นิดเดียว