ความแตกต่างระหว่าง Git และ GitHub


280

ฉันเพิ่งเพิ่มโครงการใหม่ใน Git โดยใช้ Eclipse แต่ไม่เห็นโครงการปรากฏในบัญชี GitHub ของฉัน

ทำไมพวกเขาจึงมีข้อมูลบัญชีเดียวกันและที่เก็บที่แตกต่างกัน?

Git และ GitHub ไม่เหมือนกันหรือ



2
ความซ้ำซ้อนที่เป็นไปได้ของการทำความเข้าใจพื้นฐานของ Git และ GitHub
tkruse

คำตอบ:


366

Gitเป็นระบบควบคุมการแก้ไขซึ่งเป็นเครื่องมือในการจัดการประวัติซอร์สโค้ดของคุณ

GitHubเป็นบริการโฮสติ้งสำหรับที่เก็บ Git

ดังนั้นพวกเขาจึงไม่ได้ในสิ่งเดียวกันGitเป็นเครื่องมือ , GitHubเป็นบริการสำหรับโครงการที่ใช้ Git

เพื่อรับรหัสของคุณเพื่อ GitHub, ดูได้ที่นี่


22
สิ่งที่น่าสังเกตมากที่สุดคือ GitHub เป็นผลมาจากการมีอยู่จริงของ Git ไม่ใช่เฉพาะบริการโฮสติ้งเท่านั้น
Jonas Schäfer

83
นอกจากนี้คุณไม่จำเป็นต้องใช้บริการระยะไกลเช่น GitHub หากคุณต้องการเพียงแค่ควบคุมเวอร์ชัน - git ภายในเครื่องก็ใช้ได้ดี ที่เก็บข้อมูลระยะไกลใช้สำหรับการสำรองข้อมูลและการทำงานร่วมกัน
Thilo

3
โปรดทราบว่าคุณสามารถสร้างพื้นที่เก็บข้อมูล git ระยะไกลในเว็บเซิร์ฟเวอร์หลายแห่งเช่น webfaction vs heroku มันค่อนข้างยากที่จะกำหนดค่า GitHub นั้น แต่ถูกกว่าสำหรับทีมใหญ่
Adrian Lopez

1
ชำระเงินการเปรียบเทียบนี้เพื่อทราบข้อมูลเพิ่มเติมเกี่ยวกับบริการโฮสติ้ง Git git-tower.com/blog/git-hosting-services-compared
Junaid

ฉันคิดว่าการใช้คำว่า "เครื่องมือ" และ "บริการ" นั้นคลุมเครือสำหรับผู้ที่ไม่คุ้นเคยกับปัญหา (เช่นผู้คนกำลังถามคำถามนี้) บางที "Git เป็นเทคโนโลยีสำหรับการจัดการซอร์สโค้ดในขณะที่ GitHub เป็นหนึ่งในผลิตภัณฑ์มากมายที่ให้ git เป็นบริการสำหรับโค้ดที่คุณโฮสต์ด้วย"
Rashad Saleh

68

ในการเปรียบเทียบ SVN Git แทนที่ SVN ในขณะที่ GitHub แทนที่ SourceForge: P

หากโครงการของคุณเป็นเรื่องใหม่คุณก็ยังสามารถมอบให้ Git ในพื้นที่ของคุณได้จากนั้นคุณสามารถกดไปที่ GitHub ในภายหลัง คุณจะต้องเพิ่ม GitHub repo ของคุณเป็น 'พื้นที่เก็บข้อมูลระยะไกล' ในการตั้งค่า Git ของคุณ

พวกเขาดูเหมือนจะมีบางอย่างสำหรับผู้ใช้ Eclipse: http://eclipse.github.com/

มิฉะนั้นถ้าคุณยังใหม่กับ Git: http://git-scm.com/book


อะไรคือทางเลือกในการใช้ GITHUB ออนไลน์
ตัวแปร

@variable คุณหมายถึงบางสิ่งบางอย่างเช่นที่เก็บ Git ในพื้นที่หรือเซิร์ฟเวอร์ Git ที่โฮสต์ด้วยตนเองเช่น GitLab?
bakkal

65

Gitคืออะไร:

"Git เป็นระบบควบคุมเวอร์ชันฟรีและโอเพ่นซอร์สที่ออกแบบมาเพื่อจัดการทุกอย่างตั้งแต่โครงการขนาดเล็กไปจนถึงขนาดใหญ่มากด้วยความเร็วและประสิทธิภาพ"

Git เป็นระบบควบคุมเวอร์ชันเพียร์ - เพียร์ แต่ละโหนดในเครือข่ายเป็นเพียร์ที่เก็บที่เก็บทั้งหมดซึ่งยังสามารถทำหน้าที่เป็นมัลติโหนดที่กระจายแบ็คอัพได้ ไม่มีแนวคิดเฉพาะของเซิร์ฟเวอร์กลางแม้ว่าโหนดสามารถเป็นแบบ head-less หรือ 'bare' โดยมีบทบาทคล้ายกับเซิร์ฟเวอร์กลางในระบบควบคุมเวอร์ชันรวม

GitHubคืออะไร:

"GitHub เป็นบริการโฮสติ้งที่เก็บข้อมูลบนเว็บของ Git ซึ่งมีฟังก์ชั่นการควบคุมการแก้ไขแบบกระจายและการจัดการซอร์สโค้ด (SCM) ทั้งหมดของ Git รวมถึงการเพิ่มคุณสมบัติของตัวเอง"

Github ให้การควบคุมการเข้าถึงและคุณลักษณะการทำงานร่วมกันหลายอย่างเช่น wikis การจัดการงานและการติดตามบั๊กและการร้องขอคุณสมบัติสำหรับทุกโครงการ

คุณไม่จำเป็นต้องใช้ GitHub เพื่อใช้ Git

GitHub (และระบบโลคัลรีโมตหรือโฮสต์อื่น ๆ ) ทั้งหมดสามารถเป็นเพียร์ในที่เก็บเวอร์ชันแบบกระจายเดียวกันภายในโครงการเดียว

Github ช่วยให้คุณ:

  • แบ่งปันที่เก็บของคุณกับคนอื่น ๆ
  • เข้าถึงที่เก็บข้อมูลของผู้ใช้รายอื่น
  • เก็บสำเนาระยะไกลของที่เก็บข้อมูลของคุณ (เซิร์ฟเวอร์ github) เป็นการสำรองข้อมูลสำเนาในเครื่องของคุณ

บอกฉันหน่อยซิว่าทำไม git ถึงถูกเรียกว่าแจกจ่าย? เพียงเพราะการเปลี่ยนแปลงเก็บ git ตั้งในเครื่องคอมพิวเตอร์หรือไม่ โปรดอธิบายความสำคัญของคำแบบกระจายเนื่องจากฉันใหม่กับคอมไพล์ ขอบคุณ
Mou

1
คุณต้องการให้ Git ใช้ GitHub หรือไม่
user3187724

25

Git - เครื่องมือควบคุมเวอร์ชันที่ GitHub สร้างขึ้นจากด้านบน

GitHub - บริษัท และชื่อซอฟต์แวร์ของเรา เราสร้างซอฟต์แวร์และเว็บไซต์เพื่อช่วยให้คุณโต้ตอบกับที่เก็บ Git ได้อย่างดี

GitHub.com - เว็บไซต์ที่คุณลงชื่อเข้าใช้เพื่อดูที่เก็บออนไลน์

GitHub Desktop - แอปพลิเคชันที่คุณสามารถติดตั้งบนคอมพิวเตอร์ของคุณเพื่อช่วยให้คุณซิงโครไนซ์รหัสท้องถิ่นกับ GitHub.com

แหล่งที่มา: https://guides.github.com/introduction/getting-your-project-on-github/


15

มีจำนวนของความแตกต่างที่เห็นได้ชัดระหว่างมีGit และ GitHub

Git เองนั้นให้ความสำคัญกับงานที่สำคัญของการควบคุมเวอร์ชัน มันเก็บรักษาประวัติการกระทำมันช่วยให้คุณสามารถย้อนกลับการเปลี่ยนแปลงผ่านการตั้งค่าและคำสั่งย้อนกลับและช่วยให้คุณสามารถแบ่งปันรหัสกับนักพัฒนาอื่น ๆ ผ่านคำสั่งผลักและดึง ฉันคิดว่านี่เป็นคุณสมบัติที่สำคัญที่นักพัฒนาซอฟต์แวร์ต้องการจากเครื่องมือ DVCS

Git กับ GitHub ตารางเปรียบเทียบ

ไม่มีการคืบขอบเขตกับ Git

แต่สิ่งหนึ่งที่เกี่ยวกับGitก็คือมันเป็นเพียงเลเซอร์ที่มุ่งเน้นไปที่การควบคุมซอร์สโค้ดและไม่มีอะไรอื่น มันยอดเยี่ยม แต่ก็หมายความว่าเครื่องมือนี้ขาดคุณสมบัติหลายอย่างที่องค์กรต้องการ ตัวอย่างเช่นไม่มีสิ่งอำนวยความสะดวกการจัดการผู้ใช้ในตัวเพื่อตรวจสอบว่าใครกำลังเชื่อมต่อและรับรหัส การรวมเข้ากับสิ่งต่าง ๆ เช่นจิราหรือเจนกินส์นั้นถูกทิ้งไว้ให้กับผู้พัฒนาเพื่อหาทางผ่านสิ่งต่าง ๆ เช่นตะขอ โดยทั่วไปมีสถานที่มากมายที่สามารถรวมคุณสมบัติได้ นั่นคือสิ่งที่องค์กรอย่าง GitHub และ GitLab เข้ามา

คุณสมบัติเพิ่มเติมของ GitHub

GitHub หลัก 'การเพิ่มมูลค่า' คือการให้บริการแพลตฟอร์มบนคลาวด์สำหรับ Git ซึ่งในตัวมันเองนั้นยอดเยี่ยม นอกจากนั้น GitHub ยังมี:

  • การติดตามงานที่ง่าย
  • แอปเดสก์ท็อป GitHub
  • การแก้ไขไฟล์ออนไลน์
  • กฎการป้องกันสาขา
  • คุณสมบัติคำขอดึง
  • เครื่องมือขององค์กร
  • ขีด จำกัด การทำงานร่วมกันสำหรับคนอื่น ๆ
  • อีโมจิสนับสนุน !!! : octocat:: +1:

ดังนั้น GitHub จึงเพิ่มการขัดเงาและการปรับแต่งให้เป็นเครื่องมือ DVCS ที่เป็นที่นิยมอยู่แล้ว

คู่แข่ง Git และ GitHub

บางครั้งเมื่อพูดถึงความแตกต่างระหว่าง Git และ GitHub ฉันคิดว่าเป็นการดีที่จะดูว่าพวกเขาแข่งขันกับใคร Git แข่งขันบนเครื่องบินด้วยเครื่องมืออย่าง Mercurial, Subversion และ RTC ในขณะที่ GitHub นั้นอยู่ในพื้นที่ SaaS มากกว่าที่แข่งขันกับผู้ขายคลาวด์เช่น GitLab และ BitBucket ของ Atlassian

ไม่ต้องใช้ GitHub

สิ่งหนึ่งที่ฉันชอบเตือนคนอื่นเสมอคือคุณไม่จำเป็นต้องใช้ GitHub หรือ GitLab หรือ BitBucket เพื่อใช้ Git Git เผยแพร่ในปี 2005 อะไร? GitHub ไม่ได้มาในที่เกิดเหตุจนถึงปี 2007 หรือ 2008 ดังนั้นองค์กรขนาดใหญ่ทำการควบคุมเวอร์ชันแบบกระจายกับ Git นานก่อนที่ผู้ให้บริการโฮสติ้งคลาวด์จะเข้ามา ดังนั้น Git ก็ใช้ได้ด้วยตัวเอง ไม่จำเป็นต้องให้บริการพื้นที่บนคลาวด์เพื่อให้มีประสิทธิภาพ แต่ในขณะเดียวกันการมีผู้ให้บริการ PaaS ก็ไม่ได้ทำให้เจ็บปวดอย่างแน่นอน

ทำงานกับ GitHub Desktop

อย่างไรก็ตามคุณพูดถึงความไม่ตรงกันระหว่างที่เก็บข้อมูลในบัญชี GitHub ของคุณกับ repos ที่คุณมีอยู่ในเครื่องหรือไม่? นั่นเป็นที่เข้าใจ จนกว่าคุณจะเชื่อมต่อและดึงหรือดึงข้อมูล Git repo ในพื้นที่ยังไม่รู้เกี่ยวกับ repo GitHub ระยะไกล ต้องบอกว่า GitHub มอบเครื่องมือที่เรียกว่าเดสก์ท็อป GitHubที่ช่วยให้คุณเชื่อมต่อ GitHub จากไคลเอนต์เดสก์ท็อปและโหลด repit Git ท้องถิ่นไปยัง GitHub ได้ง่ายหรือนำ GitHub repos มาไว้ในเครื่องท้องถิ่นของคุณ

GitHub Desktop

ฉันไม่ได้รู้สึกประทับใจกับเครื่องมือมากนักเมื่อคุณรู้จัก Git สิ่งเหล่านี้ไม่ใช่เรื่องยากที่จะทำในเปลือก Bash แต่เป็นตัวเลือก

การต่อสู้ระหว่าง Git และ GitHub


9

วิธีง่ายๆที่เราสามารถบอกได้ด้านล่างนี้คือความแตกต่างระหว่าง git และ git hub และ VSTS

git : - รักษา git เป็นเครื่องมือ / เทคโนโลยีเพื่อให้ได้การควบคุมเวอร์ชันต้นฉบับไปยังโครงการของเรา ซึ่งแตกต่างจาก TFS (อีกครั้งการควบคุมรุ่นแหล่งที่มาส่วนกลาง) git เป็นเทคโนโลยีการกระจายรุ่นควบคุม นั่นหมายความว่าคอมไพล์มันไม่ได้มีเซิร์ฟเวอร์ใด ๆ ด้วยเทคโนโลยี git เราสามารถสร้างเครื่องในท้องถิ่นของเราเองเป็นแหล่งเก็บข้อมูลของซอร์สโค้ดที่ไม่จำเป็นต้องมีเซิร์ฟเวอร์รวมศูนย์เสมอ แต่ด้วยการควบคุมเวอร์ชันชนิด SVN และ TFS เป็นสิ่งจำเป็นที่เซิร์ฟเวอร์จะต้องเชื่อมโยงกับมัน

ตัวอย่างเช่นหากฉันเป็นนักพัฒนาฟรีแลนซ์และฉันรายงานตรงต่อลูกค้าของฉันและไม่มีผู้พัฒนารายอื่นที่เกี่ยวข้องฉันต้องควบคุมเวอร์ชันของรหัสของฉันเพื่อย้อนกลับ (รุ่นใดก็ได้) และยอมรับรหัสของฉันและฉันไม่ มีงบประมาณในการรับเซิร์ฟเวอร์และฉันไม่มีเวลาในการติดตั้งและใช้เซิร์ฟเวอร์อื่นในเครื่องของฉันเป็นเซิร์ฟเวอร์ TFS และไคลเอนต์ TFS ดังนั้นวิธีที่ดีที่สุดคือการติดตั้งเอ็นจิ้นคอมไพล์และใช้เครื่องโลคัลของฉันเป็นที่เก็บสำหรับการควบคุมเวอร์ชันโดยคอมไพล์

GitHub : - อย่างที่ฉันบอกว่า git ก่อนหน้านี้เป็นเทคโนโลยีและใช้กับคำสั่ง / คำสั่งเชลล์เช่น git เท่านั้นไม่มี UI GitHub เป็นผลิตภัณฑ์ออนไลน์หรือพื้นที่เก็บข้อมูลออนไลน์ที่ใช้เทคโนโลยี git สำหรับกระบวนการของพวกเขาและบรรลุการควบคุมเวอร์ชันพร้อมกับฟังก์ชั่นอื่น ๆ เช่นการติดตามข้อผิดพลาดการจัดการโครงการการจัดการตั๋วสนับสนุน .. เป็นต้น กล่าวอีกนัยหนึ่ง Git Hub คือ wrapper ที่สร้างจากเทคโนโลยี git ที่มี UI และฟังก์ชั่นอื่น ๆ โดย บริษัท บุคคลที่สามอื่น ๆ มันเป็นผลิตภัณฑ์จริงของใครบางคนหรือบางกลุ่มตามเทคโนโลยี git ซึ่ง git เป็นโอเพนซอร์สและไม่ใช่ตลาด สินค้า

VSTS : - VSTS เป็นผลิตภัณฑ์ของ Microsoft สำหรับพื้นที่เก็บข้อมูลออนไลน์ที่มีการควบคุมเวอร์ชันต้นทางซึ่งสามารถใช้เป็นทางเลือกแทนฮับ git VSTS รองรับ Microsoft ทั้งเทคโนโลยี git และ TFS (การควบคุมเวอร์ชันพื้นฐานของทีม TFVC) เนื่องจาก TFS เป็นผลิตภัณฑ์ Microsoft รุ่นเก่าอีกรุ่นหนึ่งที่ประสบความสำเร็จในการควบคุมเวอร์ชันนี้ฉันคิดว่า VSTS จะค่อยๆถ่ายโอน TFS เนื่องจาก git เป็นเทคโนโลยีที่โดดเด่นในพื้นที่นี้และเป็นโอเพนซอร์ส


7

ในภาษาอังกฤษธรรมดา:

  1. พวกเขาล้วนเป็นแหล่งควบคุมที่เราทุกคนรู้
  2. ในการเปรียบเทียบหาก Git เป็นคอมพิวเตอร์แบบสแตนด์อโลน GitHub เป็นเครือข่ายคอมพิวเตอร์ที่เชื่อมต่อด้วยเว็บด้วยระฆังและเสียงหวีด
  3. ดังนั้นถ้าคุณเปิดบัญชี GitHub และโดยเฉพาะบอก VSC หรือแก้ไขใด ๆ ที่จะใช้ GitHub คุณจะเห็นรหัสต้นฉบับของคุณขึ้นมีตัวเลขที่มิฉะนั้นพวกเขาเป็นเพียงลงที่นี่ - เครื่องของคุณ

0

Git- Git เป็นซอฟต์แวร์ควบคุมเวอร์ชันที่คุณติดตั้งในระบบท้องถิ่นของคุณ สำหรับบุคคลที่ทำงานในโครงการเพียงอย่างเดียว Git พิสูจน์ให้เห็นว่าเป็นซอฟต์แวร์ที่ยอดเยี่ยม

GitHub- ตามที่กล่าวไว้ก่อนหน้านี้ Git เป็นระบบควบคุมเวอร์ชันที่ติดตามการเปลี่ยนแปลงรหัสในขณะที่ GitHub เป็นบริการโฮสติ้งที่เก็บข้อมูลการควบคุมเวอร์ชัน Git บนเว็บ มันมีฟังก์ชั่นการควบคุมเวอร์ชันแบบกระจายและการจัดการซอร์สโค้ด (SCM) ของ Git ในขณะที่เติมด้วยคุณสมบัติบางอย่างของมันเอง


0

พูดง่ายๆก็คือ Git เป็นระบบควบคุมเวอร์ชันที่ให้คุณจัดการและติดตามประวัติซอร์สโค้ดของคุณ GitHub เป็นบริการโฮสติ้งบนคลาวด์ที่ให้คุณจัดการที่เก็บ Git หากคุณมีโครงการโอเพ่นซอร์สที่ใช้ Git แล้ว GitHub ได้รับการออกแบบมาเพื่อช่วยให้คุณจัดการได้ดียิ่งขึ้น


-3

ต้องใช้ GitHub หากคุณต้องการร่วมมือกับนักพัฒนา หากคุณเป็นผู้มีส่วนร่วมเพียงคนเดียวก็เพียงพอแล้วตรวจสอบให้แน่ใจว่าคุณสำรองรหัสของคุณเป็นประจำ

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.