לדלג לתוכן

גיט מול גיטהאב - מה ההבדל

זו השאלה שכמעט כל מתחיל שואל, ואף פעם לא מקבל תשובה ברורה. אנשים משתמשים במילים "גיט" ו"גיטהאב" לסירוגין כאילו הם אותו דבר, ואז מתחילים מתבלבלים לגמרי - "אז אני צריך להתחבר לגיטהאב כדי לשמור commit?" לא. ולא סתם שאלתם, כי הבלבול הזה הגיוני לגמרי. בואו נעשה סדר אחת ולתמיד.

git הוא הכלי, GitHub הוא השירות

git הוא תוכנה. היא רצה על המחשב שלכם, מקומית, בלי שום צורך באינטרנט או בחשבון באתר כלשהו. היא זו שעוקבת אחרי השינויים בקוד שלכם, שומרת commits, ומנהלת branches. אפשר להשתמש בגיט לגמרי בלעדית, על פרויקט שרק אתם רואים, בלי לחבר אותו לשום דבר בענן.

GitHub הוא אתר. הוא שירות שמאפשר לכם לאחסן repositories של גיט בענן, לשתף אותם עם אחרים, ולעבוד יחד על אותו פרויקט. GitHub לא המציא את git ולא היחיד שיודע לארח אותו - הוא בנוי סביב git ומוסיף לו שכבה חברתית ושיתופית.

תחשבו על זה כמו על ההבדל בין וורד לבין גוגל דרייב. וורד היא התוכנה שבה אתם כותבים את המסמך. גוגל דרייב הוא המקום שבו אתם שומרים אותו כדי לגבות אותו ולשתף עם אחרים. אף אחד לא היה מתבלבל ואומר "וורד וגוגל דרייב זה אותו דבר", אבל עם git ו-GitHub זה קורה כל הזמן, כי בפועל רוב האנשים לומדים את שניהם ביחד ומעולם לא ראו את אחד בלי השני.

אז מה עושה בפועל GitHub

ברגע ש-repo נמצא ב-GitHub, אתם מקבלים כמה יכולות שגיט לבד לא נותן לכם:

  • גיבוי בענן. אם המחשב שלכם נהרס, הקוד לא נעלם.
  • שיתוף פעולה. כמה אנשים יכולים לעבוד על אותו פרויקט, כל אחד עם ה-repo שלו מקומית, ולשלב עבודה דרך GitHub.
  • Pull Requests. דרך מסודרת להציע שינויים ולבקש שמישהו יבדוק אותם לפני שהם נכנסים לקוד הראשי.
  • Issues. מעקב אחרי באגים ומשימות בתוך הפרויקט עצמו.
  • פורטפוליו ציבורי. ה-repositories הפומביים שלכם ב-GitHub הם בעצם קורות חיים חיים שמעסיקים בהייטק בודקים.

כל הדברים האלה הם תוספות של GitHub, לא של git. git עצמו לא יודע מה זה Pull Request או Issue, אלה מושגים שהאתר בנה מעל התשתית של git.

גיטהאב הוא לא היחיד

זה החלק שהכי מפתיע מתחילים - GitHub הוא לא הדרך היחידה, ואפילו לא הראשונה, לארח פרויקטי git. יש עוד שירותים דומים כמו GitLab ו-Bitbucket, שעושים בערך אותו דבר עם הבדלים בממשק ובתכונות נוספות. חברות רבות משתמשות ב-GitLab הפנימי שלהן במקום ב-GitHub הציבורי. הידע שלכם ב-git עצמו רלוונטי בכל אחד מהם, כי הם כולם בסך הכל שכבה שיושבת מעל אותו כלי בסיס.

GitHub פשוט הפך לשם הכי מוכר, בדומה לאיך ש"גוגל" הפך למילה נרדפת לחיפוש באינטרנט, למרות שיש מנועי חיפוש אחרים.

למה זה בכלל משנה להבין את ההבדל

מעבר לדיוק הטכני, יש לזה השלכה מעשית - אם אתם מבינים שגיט וגיטהאב הם שני דברים נפרדים, אתם מבינים גם למה אתם יכולים לעבוד עם git בלי אינטרנט בכלל. תוכלו לעשות commits, ליצור branches, ולעבור בין גרסאות, גם בטיסה בלי wifi. רק כשתרצו לשתף את השינויים או לגבות אותם, תצטרכו להתחבר ל-GitHub ולעשות push.

זה גם מסביר למה כשמעסיק שואל אתכם בראיון "יש לך ניסיון עם git?" הוא לא שואל אם יש לכם חשבון ב-GitHub. הוא שואל אם אתם יודעים לעבוד עם המושגים והפקודות עצמם - וזה בדיוק הבסיס שאנחנו מלמדים בקורס.

התחילו את קורס התכנות הבסיסי כאן

לסיכום

git הוא הכלי שמנהל את הגרסאות של הקוד שלכם, מקומית על המחשב. GitHub הוא אתר שמארח repositories של git ומוסיף לו כלים לשיתוף פעולה. אפשר להשתמש בגיט לגמרי בלי גיטהאב, אבל אי אפשר להשתמש בגיטהאב בלי גיט - כי הוא כולו בנוי מעליו.

עוד שאלות בסיסיות שמבלבלות? בדיסקורד שלנו יש קהילה שלמה שמחה לענות בלי לגרום לכם להרגיש מטומטמים על השאלה.

הצטרפו לקהילה בדיסקורד