Remove ads
מערכת ניהול גירסאות מוויקיפדיה, האנציקלופדיה החופשית
גיט (באנגלית: Git) היא מערכת ניהול גרסאות מבוססת קוד פתוח, שמטרתה לסייע למפתחים בניהול קוד, תיאום עבודה צוותית ומעקב אחר שינויים בקובצי תוכנה. מטרותיה העיקריות הן לספק מהירות, שלמות מידע ותמיכה בתהליכים מבוזרים ולא ליניאריים.
הדגמת שימוש בסיסי בתוכנת Git | |
מפתח | ג'וניו המאנו, לינוס טורבאלדס |
---|---|
מחזור חיים | 7 באפריל 2005 – הווה (19 שנים) |
גרסה אחרונה | 2.47.1 (25 בנובמבר 2024) |
מערכת הפעלה | חוצה-פלטפורמות |
נכתבה בשפות | C, Bourne Shell, Tcl, Perl |
סוג רישיון | הרישיון הציבורי הכללי של גנו |
קוד מקור | https://git.kernel.org/pub/scm/git/git.git |
קטגוריה | ניהול גרסאות |
git-scm.com | |
כמערכת בקרת גרסאות מבוזרת, עותק שלה הוא מאגר שמכיל את מלוא המידע עם תיעוד מלא ואפשרויות מעקב אחר שינויי גרסה, ללא תלות בגישה לרשת או בשרת מרכזי.
היוצר של גיט הוא לינוס טורבאלדס והוא יצר את המערכת באפריל של שנת 2005. נכון לשנת 2020, היא נחשבת למערכת ניהול הגרסאות הפופולרית ביותר.[1]
החל משנת 2002, הפיתוח של פרויקט לינוקס השתמש במערכת ניהול הגרסאות המבוזרת הקניינית BitKeeper (אנ'). בשנת 2005 הצליח אנדרו טריגל לפתח לקוח עצמאי, ובעקבות כך נשלל רישיון השימוש במערכת לפרויקט לינוקס. טורבאלדס לא היה מרוצה ממערכות ניהול הגרסאות האחרות שהיו קיימות באותו שלב,[2] והחליט לכתוב אחת משלו. הוא החל לעבוד על גיט ב-3 באפריל 2005. פחות מחודש לאחר מכן כבר הייתה גרסה שאפשרה פיתוח יעיל של לינוקס (מערכת מרקוריאל נכתבה באותו הזמן ומאותן הסיבות). ביולי של אותה השנה, הפך ג'וניו המאנו למתחזק הראשי.
ברחבי העולם, מספר עצום של חברות הזנק (סטארט-אפ), קולקטיבים וחברות בין-לאומיות, כולל גוגל ומיקרוסופט, משתמשים בגיט כדי לשמור על קוד המקור של פרויקטי התוכנה שלהם. חלקם מארחים פרויקטי גיט משלהם, אחרים משתמשים בגיט באמצעות חברות אירוח מסחריות כמו GitHub (נוסדה בשנת 2007), Bitbucket (נוסדה בשנת 2010) ו-GitLab (אנ') (נוסדה בשנת 2011). הגדולה שבהן, GitHub, מונה 40 מיליון מפתחים רשומים ונרכשה על ידי מיקרוסופט תמורת 7.5 מיליארד דולר בשנת 2018.[3]
בסקר מפתחים שנערך על ידי Stack Overflow בשנת 2018, נמצא כי 88.4% מכלל 74,298 המשתתפים בסקר השתמשו בגיט באותה השנה (עלייה מ-69.3% בשנת 2015).[4]
גיט היא מערכת ניהול גרסאות מבוזרת - כל עותק מקומי של המאגר מכיל את כל המידע (כל ההיסטוריה). המידע הזה נשמר בדרך כלל בתת-תיקייה בשם ".git". גיט שומרת אובייקטים מסוג מידע (blob, בדרך כלל קובץ), עץ (tree, מבנה ספריות) וגרסה (commit). האובייקטים מזוהים על ידי שם שהוא גיבוב תוכנם לפי SHA-1.
בניגוד לרוב מערכות ניהול הגרסאות המודרניות ששומרות שינויים בין גרסאות שונות[דרוש מקור], גיט שומרת את תוכני הקבצים עצמם. גיט תוכננה להיות מעין מערכת קבצים משוכללת שמעליה תבנה מערכת ניהול גרסאות. בתחילה השם היה אמור להתייחס רק לקרביים ("צנרת"), אולם בהמשך התברר שעדיף לספק גם מימוש אחיד של מערכת ניהול גרסאות ("פורצלן").
לרוב מקובל להסתכל על גרסאות כעץ: בנקודות מסוימות מתפצל הפיתוח לעבודה על ענפים שונים. בגיט אפשר גם למזג ענפים שונים. לכן גיט מתייחס לגרסאות כגרף מכוון חסר מעגלים: גרסה מתבססת על גרסה קודמת ומכילה שינויים כלפיה. אולם גרסה יכולה להיות גם תוצאת מיזוג שתי גרסאות שונות.
דוגמה, מ-http://tzafrir.org.il/~tzafrir/git_test/.git, של מאגר גיט פשוט:
* 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.
בדוגמה זו נראה מאגר תוכנה קטן. כל גרסה נקראת בשמה המקוצר, ב-7 ספרות הקסאדצימליות. שלוש גרסאות סומנו בתגיות (v0.1, v0.2, v0.3). רוב התיקונים נעשו בענף הראשי (master). כל התגיות הם של גרסאות על הענף הראשי. אולם היו שני ענפי פיתוח צדדיים: הענף 'feature-branch' נוצר לאחר גרסה v0.1 ומוזג לענף הראשי לאחר סימון v0.2. הענף השני הוא הענף הניסיוני 'experiment' שלא מוזג עדיין.
איסוף זבל (Garbage Collection) הוא תהליך שבו תוכנה מוחקת אובייקטים שקיימים עדיין בזיכרון למרות שהצורך בהם הסתיים.
בהקשר של git, מחיקה של ענף גרסאות לדוגמה איננה כוללת מחיקה מיידית של כל הגרסאות המקושרות אליו[דרוש מקור]. במקום זאת, מופעל באופן תקופתי תהליך של "איסוף זבל" הבודק את כל הגרסאות ומוחק גרסאות שכבר אין שום ענף או תגית המפנים אליהן.
המאגר בגיט עובד מול מאגרים אחרים. המאגרים הללו יכולים להיות קבצים על מערכת הקבצים המקומית או קבצים מרוחקים על שרתים אחרים. אם הקבצים יושבים על שרתים אחרים יש כמה אפשרויות לגשת אליהם:
ההתחברות דרך SSH או דרך שרת גיט יעילה יותר (מהירה יותר וצורכת פחות נפח תעבורה) מאשר הפרוטוקול הטיפש, מכיוון שאפשר להשתמש במידע בצורה יעילה יותר (בקשת fetch-pack). פרוטוקול גיט לא כולל הזדהות ולכן לא נהוג לאפשר העלאת תוכן דרכו. נהוג לאפשר העלאת תוכן רק דרך SSH (במקרים רבים ההזדהות היא על ידי מפתחות ציבוריים).[5][6]
במצבו הטבעי, Git הוא יישום הפועל בטרמינל Linux.
עם זאת, מאחר שמדובר בקוד מקור פתוח מעוצב היטב, מפתחים מכל רחבי העולם עיצבו דרכים אחרות לגשת אליו.
הוא חינמי ומגיע בחבילות Linux, BSD, Illumos ומערכות הפעלה אחרות דמויות Unix. הוא נראה כך:
$ git --version
git version 2.43.0
ככל הנראה, ממשקי הגיט הכי מוכרים הם מבוססי אתרים: אתרים כמו GitHub, המקור הפתוח GitLab, Savannah, BitBucket ו־SourceForge כולם מציעים אירוח קוד מקוון כדי למקסם את ההיבט הציבורי והחברתי של קוד פתוח, ברמות שונות, יחד עם GUI מבוסס-דפדפן כדי למזער את עקומת הלמידה של השימוש בגיט. השילוב השקוף ביותר מגיע בצורה של תמיכה במנהל קבצים. מנהל הקבצים KDE, Dolphin, יכול להראות את מצב הגיט של תיקייה ואף ליצור התחייבויות, דחיפות ומשיכות. SparkleShare (אנ') משתמשת בגיט כבסיס לממשק שיתוף קבצים בסגנון Dropbox.
לגיט יש מודל סיעוף שמייחד אותה מתוכנות אחרות לניהול קוד. גיט מאפשרת ליצור מספר ענפים (branch) מקומיים על מחשב, שיכולים להיות בלתי תלויים זה בזה לחלוטין ומאפשרים להוסיף לקוד חלקים חדשים במקביל ובצורה נוחה. מיזוג הקוד שנכתב בענפים השונים לכדי גרסה יציבה אינו מסובך בזכות הממשק הוויזואלי של גיט.
בקרב המפתחים קיימות קונבנציות לשמות של ענפים בהתאם לתפקידם, ונהוג שלכל פרויקט יש ענף ראשי שכל הענפים מסתעפים ממנו, ומתמזגים אליו בסיום הפיתוח הנקודתי. במשך שנים רבות היה נהוג לכנות את הענף הראשי בשם "master", אך ב-2021 שונה השם ל-"main" בעקבות מחאות על הקונוטציה השלילית של השם master שמתקשרת לעבדות.[7] ענף נוסף שנהוג להשתמש בו הוא "develop" - ענף שמשמש לייצוג גרסת הפיתוח היציבה שעדיין לא שוחררה לשימוש. לעיתים נעשה שימוש גם ב-"stable" שמשמש ליצוג הגרסה האחרונה של מערכת שהיא יציבה בוודאות.[8]
מודל הסיעוף מאפשר התנסות בפיתוח ללא חשש לפגוע במהימנות של המוצר הראשי ולכן הופך את חוויית הפיתוח של המשתמשים לקלה יותר ולנוחה יותר. המודל גם מאפשר מעבר מהיר בין גרסאות במקרה של תקלות ובאגים.
רשימה של גרסאות:
מספר גרסה | תאריך שחרור גרסה |
---|---|
0.99 | 11-07-2005 |
1.0 | 21-12-2005 |
1.1 | 08-01-2006 |
1.2 | 12-02-2006 |
1.3 | 18-04-2006 |
1.4 | 10-06-2006 |
1.5 | 14-02-2007 |
1.6 | 17-08-2008 |
1.7 | 13-02-2010 |
1.8 | 21-10-2012 |
1.9 | 14-02-2014 |
2.0 | 28-05-2014 |
2.1 | 16-08-2014 |
2.2 | 26-11-2014 |
2.3 | 05-02-2015 |
2.4 | 30-04-2015 |
2.5 | 27-07-2015 |
2.6 | 28-09-2015 |
2.7 | 04-10-2015 |
2.8 | 28-03-2016 |
2.9 | 06-06-2016 |
2.10 | 02-09-2016 |
2.11 | 29-11-2016 |
2.12 | 24-02-2017 |
2.13 | 10-05-2017 |
2.14 | 04-08-2017 |
2.15 | 30-10-2017 |
2.16 | 17-01-2018 |
2.17 | 02-04-2018 |
2.18 | 21-06-2018 |
2.19 | 10-09-2018 |
2.20 | 09-12-2018 |
2.21 | 24-02-2019 |
2.22 | 07-06-2019 |
2.23 | 16-08-2019 |
2.24 | 04-11-2019 |
2.25 | 13-01-2020 |
2.37 | 27-07-2022 |
2.38 | 03-10-2022 |
2.38.1 | 18-10-2022 |
2.38.2 | 11-12-2022 |
2.38.3 | 17-01-2023 |
2.38.4 | 14-02-2023 |
2.38.5 | 25-04-2023 |
2.39.0 | 12-12-2022 |
2.39.1 | 17-01-2023 |
2.39.2 | 14-02-2023 |
2.39.3 | 25-04-2023 |
2.39.4 | 14-05-2024 |
2.39.5 | 31-05-2024 |
2.40.0 | 13-03-2023 |
2.40.1 | 25-04-2023 |
2.40.2 | 14-05-2024 |
2.40.3 | 31-05-2024 |
2.41.0 | 01-06-2023 |
2.41.1 | 14-05-2024 |
2.41.2 | 31-05-2024 |
2.42.0 | 21-08-2023 |
2.42.1 | 02-11-2023 |
2.42.2 | 14-05-2024 |
2.42.3 | 31-05-2024 |
2.43.0 | 20-11-2023 |
2.43.1 | 09-02-2024 |
2.43.2 | 14-02-2024 |
2.43.3 | 23-02-2024 |
2.43.4 | 14-05-2024 |
2.43.5 | 31-05-2024 |
2.44.0 | 23-02-2024 |
2.44.1 | 14-05-2024 |
2.44.2 | 31-05-2024 |
2.45.0 | 29-04-2024 |
2.45.1 | 14-05-2024 |
2.45.2 | 31-05-2024 |
2.46.0 | 29-07-2024 |
טורבאלדס היה המפתח של גיט בחודשים הראשונים של הייצור. לאחר מספר חודשים הפך ג'וניו המאנו למפתח הראשי. גיט לא דורשת השמת זכויות יוצרים, ונכון לסוף 2010 יותר מ-600 אנשים תרמו קוד למיזם.[9] החל מה־16 בדצמבר 2010 המיזם מנוהל בחסות מוסד חופש התוכנה (Software Freedom Conservatory) גוף זה מספק ישות משפטית (לדוגמה: עבור תרומות) וייעוץ משפטי.[10]
Seamless Wikipedia browsing. On steroids.
Every time you click a link to Wikipedia, Wiktionary or Wikiquote in your browser's search results, it will show the modern Wikiwand interface.
Wikiwand extension is a five stars, simple, with minimum permission required to keep your browsing private, safe and transparent.