Github คืออะไร
ในบทความที่แล้วเราได้รู้แล้วว่า Git คืออะไร สำคัญอย่างไร ที่นี้ถ้าเคยได้ยิน Git อยู่แล้ว ก็คงต้องได้ยิน Github ด้วย เราจะมาดูกันว่าแล้ว Github คืออะไร ต่างจาก Git อย่างไร
GitHub คือ website Git (version control repository) ที่อยู่บน internet มีการทำงานแบบเดียวกับ Git เลย แต่สามารถเข้าถึงข้อมูลและจัดการไปผ่าน web โดยไม่ต้องเสียเงิน หรือลงทุกตั้ง server เพื่อติดตั้ง Git เองเลย แต่ code project ทั้งหมดจะุถูกแจกจ่ายให้คนอื่นๆสามารถเห็นได้ด้วย ซึ่ง GitHub ก็มีการเสนอ plan แบบส่วนตัวให้ถ้าอยากให้ code ไม่ถูกแจกจ่ายออกไปโดยจะมีค่าใช้จ่ายตรงนี้ ปัจจุบันมีมากกว่า 20 ล้าน user รวมกันกว่า 60 ล้าน repository บนระบบแล้ว
ประวัติของ GitHub
วันที่ 24 กุมภาพันธ์ 2009 ทางทีมงาน GitHub ได้ประกาศใน Yahoo! ว่าเริ่ม online ให้ใช้งาน และในปีแรกได้เกิด 46,000 repository ขึ้น และเติบโตขึ้นอย่างรวมเร็ว ปัจจุบัน
ทำไมถึงต้องใช้ Git
Track version ของ Source Code ย้อนกลับได้
- เมื่อจัดเก็บไฟล์เข้าไปในระบบของ Git จะเรียกว่า Git Repository ซึ่งเก็บสำรองข้อมูลและการเปลี่ยนแปลงของ Source Code ทำให้สามารถย้อนกลับไปที่เวอร์ชั่นใดๆ ก่อนหน้า และดูรายละเอียดการเปลี่ยนแปลงของแต่ละเวอร์ชั่นได้ นอกจากนั้นยังสามารถดูได้ว่าใครเป็นคนแก้ไข!!
ช่วยในการพัฒนาซอฟต์แวร์เป็นทีม
- Git สามารถเก็บบันทึกการเปลี่ยนแปลงของ Source Code เวอร์ชั่นล่าสุดไว้ที่ Local Repository ซึ่งสามารถทำงานได้โดยที่ไม่ต้องต่อกับอินเตอร์เน็ต และเมื่อต้อง Update การเปลี่ยนแปลงของ Source Code เวอร์ชั่นล่าสุดให้กับเพื่อนร่วมทีมก็สามารถที่จะ Push ขึ้นไปเก็บที่ Remote Repository(Git Hosting) และเพื่อนร่วมทีมก็สามารถ Pull เวอร์ชั้นล่าสุดนั้นมารวม(Auto Merge) ที่เครื่องของเขาเอง ทำให้ Source Code ที่พัฒนาร่วมกันกับคนภายในทีมเป็นเวอร์ชั่นล่าสุดเสมอ
Git Status
สถานะของ Source Code ที่เก็บอยู่ในระบบของ Git นั้นมีดั่งนี้
- Untracked เป็นสถานะที่ Source Code ถูกเพิ่มเข้ามาใหม่และยังไม่ได้ถูกเก็บไว้ในระบบของ Git
- Working Directory เป็นสถานะที่กำลังมีการเปลี่ยนแปลงหรือแก้ไข Source Code หรืออาจจะเรียกสถานะนี้ว่า Modified
- Staged เป็นสถานะที่ Source Code กำลังเตรียมที่จะ Commit เพื่อยืนยันการเปลี่ยนแปลงก่อนที่จะเก็บลงในสถานะ Local Repository
- Local Repository เป็นสถานะที่มีการเก็บบันทึกข้อมูลการเปลี่ยนแปลงของ Source Code ลงไปที่ Git Repository ที่เป็น Local (ที่เครื่องตัวเอง)
- Remote Repository เป็นสถานะที่มีการเก็บบันทึกข้อมูลการเปลี่ยนแปลงของ Source Code ลงไปที่ Git Repository ที่เป็น Hosting (ที่เครื่องเซิร์ฟเวอร์)
สรุป
Git กลายมาเป็นสิ่งที่จำเป็นและต้องใช้สำหรับผมไปแล้ว ในการทำงานกับ Source Code เหตุผลก็ได้อธิบายไปข้างต้นแล้ว และแทบไม่มีข้อเสียอะไรเลย ช่วยเก็บ Source Code ให้ไม่หาย สามารถย้อนไปเวร์อชั่นเก่าๆ ได้เมื่องานมีปัญหา ชีวิตการในการเขียนโปรแกรมดีขึ้นเยอะ
คนที่กำลังสนใจ(สับสน)อยู่ว่า Git คืออะไร ควรใช้ดีไหม และทำไมถึงต้องใช้ แนะนำให้ลองใช้เลยครับ และเราจะขอบคุณตัวเราเองเมื่อเวลาผ่านไปที่เราได้รู้จักกับ Git