רקע והיסטוריה
מהו 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) היא מהירה
בדקו את עצמכם
נסו לענות לבד לפני שאתם פותחים את התשובה.
-
מה Git עושה?
הצגת התשובה
תשובה ג. Git היא מערכת לניהול גרסאות.
-
מה ההבדל בין Git ל-GitHub?
הצגת התשובה
תשובה ב. אפשר לעבוד עם Git גם בלי GitHub, או עם GitLab ו-Bitbucket.