גיט
| Git | |
|---|---|
| מפתח | ג'וניו המאנו, לינוס טורבאלדס |
| גרסה אחרונה | 1.7.9.6 ב-2 באפריל 2012 |
| מערכת הפעלה | חוצה פלטפורמות |
| רישיון | GPL (גרסה 2) |
| קטגוריה | ניהול גרסאות |
| דף בית | git-scm.com |
גיט (באנגלית: Git) היא מערכת ניהול גרסאות מבוזרת. המערכת נוצרה בשנת 2005 על ידי לינוס טורבאלדס כדי לנהל את קוד המקור של לינוקס וכיום היא אחת ממערכות ניהול הגרסאות הנפוצות בעולם.
תוכן עניינים |
[עריכה] היסטוריה
החל משנת 2002, הפיתוח של פרויקט לינוקס השתמש במערכת ניהול הגרסאות המבוזרת הקניינית BitKeeper. בשנת 2005 הצליח אנדרו טריגל לפתח לקוח עצמאי. בשל כך נשלל רישיון השימוש לפרויקט לינוקס. טורבאלדס לא היה מרוצה ממערכות ניהול הגרסאות שהיו קיימות באותו שלב[1], והחליט לכתוב אחת משלו. הוא החל לעבוד על גיט ב-3 באפריל 2005. פחות מחודש לאחר מכן כבר הייתה גרסה שאפשרה פיתוח יעיל של לינוקס. ביולי אותה שנה, הפך ג'וניו המאנו למתחזק הראשי.
[עריכה] מבנה
גיט היא מערכת ניהול גרסאות מבוזרת - כל עותק מקומי של המאגר מכיל את כל המידע (כל ההיסטוריה). המידע הזה נשמר בדרך כלל בתת-תיקיה בשם ".git". מקבלים אצל גיט שם שהוא גיבוב תוכנם לפי SHA-1.
בניגוד לרוב מערכות ניהול הגרסאות המודרניות ששומרות שינויים בין גרסאות שונות[דרוש מקור], גיט שומרת את תוכני הקבצים עצמם. גיט תוכננה להיות מעין מערכת קבצים משוכללת שמעליה תיבנה מערכת ניהול גרסאות. בתחילה השם היה אמור להתייחס רק לקרביים ("צנרת"), אולם בהמשך התברר שעדיף לספק גם מימוש אחיד של מערכת ניהול גרסאות ("פורצלן").
לרוב מקובל להסתכל על גרסאות כעץ: בנקודות מסוימות מתפצל הפיתוח לעבודה על ענפים שונים. בגיט אפשר גם למזג ענפים שונים. לכן גיט מתייחס לגרסאות כגרף מכוון חסר מעגלים: גרסה מתבססת על גרסה קודמת ומכילה שינויים כלפיה. אולם גרסה יכולה להיות גם תוצאת מיזוג שתי גרסאות שונות.
- גרסה
- (revision או commit) כל שינוי שנשמר הוא גרסה. בדרך כלל מדובר על שינוי ביחס לגרסה קודמת, אולם השינוי יכול להיות גם מיזוג (merge) של שתי גרסאות קודמות משני ענפי פיתוח שונים. שם הגרסה הוא התוצאה של הפעלת SHA-1, שהוא "מילה" באורך 40 תווים (לדוגמה: b70df95dbae39b3f0447be5c214d1dee33245827). אפשר להשתמש ברוב המקרים במספר יותר קטן של תווים מתחילת המילה (לדוגמה: b70df95) כשם מקוצר לאותה גרסה.
- ענף
- (branch) הוא סעיף בגרף הגרסאות. כל גרסה מוצגת כאן בשמה המקוצר. גיט מחזיק רשימה של ענפים מקומיים והם בדרך כלל הקצוות הנוכחיים של השינויים. מקובל לקרוא לענף הראשי master. כמוכן HEAD הוא שם שמור לנקודה שבה אנחנו נמצאים כרגע (בדרך כלל: ענף הפיתוח הפעיל). כל גרסה מסומנת על ידי שם מקוצר.
- תגית
- (tag) אפשר לסמן גרסה מסוימת כתג. זה מאפשר לתת שם סמלי למקום מסוים (לדוגמה: תג בשם v1.23.5-beta2 יכול לסמל את גרסה מס' 1.23.5-beta2 של התוכנה). בגיט התג יכול לכלול גם חתימה דיגיטלית. בכך אפשר להתחייב על תוכנו של תג.
- מיזוג
- (merge) בדרך כלל כל שינוי מבוסס על שינוי קודם אחד. אולם לפעמים מעוניינים למזג שני ענפי פיתוח. לדוגמה: ענף פיתוח צדדי שהושלם ממוזג לתוך הענף הראשי. גיט זוכר את ההיסטוריה הזו. לכן לגרסה שהיא מיזוג יש שני הורים (ולפעמים אף יותר).
דוגמה מאגר גיט פשוט:
* 8f56b9b (HEAD, tag: v0.3, master) Some integration work * 45ace55 Merge branch 'feature-branch' |\ | * 5f90c8c (feature-branch) Add a new feature | | * b76c518 (experiment) Testing an experimental feature | |/ |/| * | b70df95 (tag: v0.2) Adding a new header * | b65d3e3 Adding documentation |/ * 5742dfe (tag: v0.1) Adding hello.
בדוגמה זו אנו רואים מאגר תוכנה קטן. כל גרסה נקראת בשמה המקוצר. שלוש גרסאות סומנו בתגיות (v0.1, v0.2, v0.3). רוב התיקונים נעשו בענף הראשי (master). כל התגיות הם של גרסאות על הענף הראשי. אולם היו שני ענפי פיתוח צדדיים: הענף 'feature-branch' נוצר לאחר גרסה v0.1 ומוזג לענף הראשי לאחר סימון v0.2. הענף השני הוא הענף הנסיוני 'experimental' שלא מוזג עדיין.
- איסוף זבל
- (gc) - גרסאות נוצרות בצורה אוטומטית. גם כאשר אף אחד לא מתייחס אליהן הן עדיין לא נמחקות. לשם כך צריך לאסוף את הזבל. אפשר ליצור ענפים ותגיות. אפשר גם למחוק אותן. לעומת זאת, את הגרסאות לא מוחקים בצורה מפורשת. אם נמחוק את הענף experimental שבדוגמה למעלה, עדיין תישאר הגרסה b76c518, אולם לא תהיה דרך להגיע אליה. כשמפעילים את פעולת איסוף הזבל, גיט מוחק את כל הגרסאות שאינן נגישות מענף או תגית.
[עריכה] משתמשים
גיט היא כיום אחת מהמערכות הנפוצות ביותר לניהול גרסאות תוכנה. בעיקר בין תוכנות חופשיות. מבין הפרויקטים שמשתמשים בה:
[עריכה] ארגון
טורבאלדס פיתח את גיט בחודשים הראשונים. לאחר מכן הפך ג'וניו המאנו למפתח הראשי. גיט לא דורשת השמת זכויות יוצרים, ונכון לסוף 2010 יותר מ-600 אנשים תרמו לפרויקט קוד[2]. החל מה־16 בדצמבר 2010 הפרויקט מנוהל בחסות מוסד חופש התוכנה (Software Freedom Conservatory). גוף זה מספק ישות משפטית (לדוגמה: עבור תרומות) וייעוץ משפטי.[3]
[עריכה] ראו גם
[עריכה] קישורים חיצוניים
[עריכה] הערות שוליים
- ^ התשובה של טורבאלדס ברשימת התפוצה של הקרנל
- ^ מספר התורמים: 683, נכון ל־21 בדצמבר 2010, לפי הדף About Git בדף הבית של הפרוייקט
- ^ הודעה לעיתונות על הצטרפות פרויקט גיט ל-Software Freedom Conservatory