רקע והיסטוריה

מהו Git?

Git היא מערכת בקרת גרסאות (Version Control System - VCS) מבוזרת ופתוחת קוד. היא מאפשרת לעקוב אחרי שינויים בקבצי קוד לאורך זמן, לחזור לגרסאות קודמות, לעבוד במקביל עם מפתחים אחרים ולמזג שינויים בצורה מסודרת.

היסטוריה קצרה

  • 2005 - Linus Torvalds, יוצר ליבת Linux, פיתח את Git לאחר שמערכת בקרת הגרסאות הקודמת (BitKeeper) הפסיקה להיות חינמית לפיתוח Linux
  • המטרות שהוגדרו: מהירות, פשטות בעיצוב, תמיכה חזקה בעבודה לא לינארית (אלפי branches במקביל), פיזור מלא ויכולת להתמודד עם פרויקטים גדולים
  • 2008 - GitHub עלתה לאוויר והפכה את Git לסטנדרט בעולם הקוד הפתוח

למה צריך מערכת בקרת גרסאות?

  • היסטוריה מלאה - אפשר לראות מי שינה כל שורה ומתי
  • שחזור - חזרה למצב יציב במקרה של תקלה
  • שיתוף פעולה - מספר מפתחים יכולים לעבוד על אותו פרויקט בלי לדרוס אחד את השני
  • ניסיונות בטוחים - אפשר ליצור branch לניסוי פיצ'ר חדש בלי לפגוע ב-main
  • גיבוי - הקוד נשמר גם אצל המפתחים וגם בשרת מרוחק

Git לעומת מערכות אחרות

תכונה Git SVN (Subversion)
ארכיטקטורה מבוזר (כל מפתח מחזיק עותק מלא) מרכזי (שרת אחד)
מהירות מהיר מאוד (פעולות מקומיות) איטי יותר (תלוי ברשת)
Branches זול ופשוט - אלפי branches זה נורמלי יקר ומורכב
עבודה offline אפשרית באופן מלא מוגבלת מאוד
Snapshot vs Diff שומר snapshots של הפרויקט שומר diffs בלבד

מושג ה-DVCS (Distributed VCS)

ב-Git, כל מפתח מחזיק עותק מלא של ההיסטוריה. אין שרת "אמת" - יש שרת מרכזי (כמו GitHub) רק בהסכמה. המשמעות:

  • אפשר לעבוד גם בלי חיבור לאינטרנט
  • אם השרת המרכזי נופל - לכל מפתח יש עותק מלא
  • כל פעולה מקומית (commit, branch, log) היא מהירה

בדקו את עצמכם

נסו לענות לבד לפני שאתם פותחים את התשובה.

  1. מה Git עושה?

    1. מאחסן אתרים
    2. מעצב קוד
    3. עוקב אחרי שינויים בקוד לאורך זמן ומאפשר לחזור ולעבוד במקביל
    4. מריץ קוד
    הצגת התשובה

    תשובה ג. Git היא מערכת לניהול גרסאות.

  2. מה ההבדל בין Git ל-GitHub?

    1. Git רק ל-Windows
    2. Git הוא הכלי במחשב, GitHub הוא שירות אחסון למאגרים ברשת
    3. GitHub הוא גרסה חדשה של Git
    4. אין הבדל
    הצגת התשובה

    תשובה ב. אפשר לעבוד עם Git גם בלי GitHub, או עם GitLab ו-Bitbucket.