GitHub เป็นแพลตฟอร์มควบคุมเวอร์ชันและร่วมมือบนเว็บสำหรับนักพัฒนาซอฟต์แวร์ Microsoft ผู้มีส่วนร่วมมากที่สุดของ GitHub เริ่มการได้มาซึ่ง GitHub ในราคา 7.5 พันล้านดอลลาร์ในเดือนมิถุนายน 2018 GitHub ซึ่งส่งมอบผ่านโมเดลธุรกิจ Software-as-a-Service (SaaS) เริ่มต้นในปี 2008 และก่อตั้งบน Git ระบบจัดการโค้ดโอเพนซอร์สที่สร้างโดย Linus Torvalds เพื่อทำให้การสร้างซอฟต์แวร์เร็วขึ้น
Git ใช้เก็บซอร์สโค้ดสำหรับโครงการและติดตามประวัติการเปลี่ยนแปลงทั้งหมดของโค้ดนั้น มันช่วยให้นักพัฒนาร่วมมือในโครงการได้อย่างมีประสิทธิภาพมากขึ้นโดยให้เครื่องมือจัดการการเปลี่ยนแปลงที่อาจขัดแย้งจากนักพัฒนาหลายคน GitHub อนุญาตให้นักพัฒนาเปลี่ยน ปรับ และปรับปรุงซอฟต์แวร์จากที่เก็บสาธารณะ (public repositories) ฟรี แต่คิดค่าบริการสำหรับที่เก็บส่วนตัว (private repositories) เสนอแผนต่างๆ ที่ต้องเสียค่าใช้จ่าย ที่เก็บสาธารณะหรือส่วนตัวแต่ละที่เก็บมีไฟล์ทั้งหมดของโครงการ รวมถึงประวัติการแก้ไขของแต่ละไฟล์ ที่เก็บสามารถมีผู้ร่วมมือหลายคนและเป็นสาธารณะหรือส่วนตัวได้
GitHub สนับสนุน social coding โดยให้อินเตอร์เฟซเว็บสำหรับที่เก็บโค้ด Git และเครื่องมือจัดการร่วมมือ GitHub สามารถมองได้ว่าเป็น social networking แบบจริงจังสำหรับนักพัฒนาซอฟต์แวร์ สมาชิกสามารถติดตามกัน ให้คะแนนงานกัน รับอัปเดตสำหรับโครงการเฉพาะ และสื่อสารแบบสาธารณะหรือส่วนตัว
สามคำสำคัญที่นักพัฒนาใช้ใน GitHub คือ fork, pull request และ merge Fork ซึ่งรู้จักกันในชื่อ branch คือที่เก็บที่ถูกคัดลอกจากบัญชีสมาชิกหนึ่งไปยังอีกบัญชีหนึ่ง Forks และ branches ช่วยให้นักพัฒนาทำการแก้ไขโดยไม่ส่งผลต่อโค้ดต้นฉบับ หากนักพัฒนาต้องการแชร์การแก้ไข พวกเขาสามารถส่ง pull request ไปยังเจ้าของที่เก็บต้นฉบับ หากหลังจากตรวจสอบการแก้ไข เจ้าของต้นฉบับต้องการดึงการแก้ไขเข้าไปในที่เก็บ พวกเขาสามารถยอมรับการแก้ไขและ merge รวมกับที่เก็บต้นฉบับ Commits ถูกเก็บไว้โดยค่าเริ่มต้นทั้งหมดและรวมเข้าด้วยกันบนโครงการหลัก หรือสามารถรวมเป็น merge แบบง่ายขึ้นผ่าน commit squashing
A GitHub Pages Tutorial on How to Host Personal Websites
เนื่องจาก GitHub ใช้งาน 직관적이고 และเครื่องมือควบคุมเวอร์ชันมีประโยชน์สำหรับการร่วมมือ ผู้ที่ไม่ใช่โปรแกรมเมอร์ก็เริ่มใช้ GitHub ทำงานในโครงการที่อิงเอกสารและมัลติมีเดีย GitLab เป็นทางเลือกโอเพนซอร์สแทน GitHub
ผลิตภัณฑ์และคุณสมบัติของ GitHub
GitHub เสนอเวอร์ชัน on-premises นอกจากผลิตภัณฑ์ SaaS ที่รู้จักดี GitHub Enterprise รองรับ integrated development environments และการรวมเครื่องมือ continuous integration รวมถึงแอปและบริการบุคคลที่สามมากมาย ให้ความปลอดภัยและการตรวจสอบที่เพิ่มขึ้นจากเวอร์ชัน SaaS
ผลิตภัณฑ์และคุณสมบัติอื่นๆ ที่น่าสนใจรวมถึง:
- GitHub Gist อนุญาตให้ผู้ใช้ GitHub แชร์ชิ้นส่วนโค้ดหรือบันทึกอื่นๆ
- GitHub Flow คือเวิร์กโฟลว์แบบเบา อิง branch สำหรับการปรับใช้ที่อัปเดตบ่อย
- GitHub Pages คือเว็บเพจแบบคงที่สำหรับโฮสต์โครงการ ดึงข้อมูลโดยตรงจากที่เก็บ GitHub ของบุคคลหรือองค์กร
- GitHub Desktop ช่วยให้ผู้ใช้เข้าถึง GitHub จากเดสก์ท็อป Windows หรือ Mac แทนที่จะไปที่เว็บไซต์ GitHub
- GitHub Student Developer Pack เป็นข้อเสนอฟรีของเครื่องมือนักพัฒนาที่จำกัดเฉพาะนักศึกษา รวมทรัพยากรคลาวด เครื่องมือเขียนโปรแกรม และการเข้าถึง GitHub