במדריך הזה אני מסביר על מערכת ניהול הגרסאות המבוזרת Git. אם אתם לא מכירים את הקונספציה של מערכת ניהול גרסאות ולא עבדתם עם כזו בעבר – אני ממליץ לכם בחום רב לעבור על המדריך ל-SVN. במיוחד על המונחים שאנו משתמשים בהם. SVN היא מערכת פשוטה יותר לניהול גרסאות ושם אני מסביר רבים מהמונחים הבסיסיים של ניהול גרסאות. הכרת SVN או מערכת כלשהי לניהול גרסאות היא תנאי מקדים להבנת המדריך הזה.
למה git?
git (או בעברית: גיט) היא מערכת ניהול גרסאות שתפסה פופולריות עצומה בשנים האחרונות וכיום נדיר למצוא מקום עבודה או מערכת שאינה נעזרת בגיט לניהול הקוד שלה. עולה השאלה: למה? הרי מערכות לניהול גרסאות כמו SVN היו קיימות מזה שנים רבות. גיט שונה מהמערכות האלו כיוון שהיא מערכת מבוזרת לניהול גרסאות. כלומר מספר הרבה יותר גדול של אנשים וצוותים יכולים להשתמש בה בלי הרבה בעיות שמתעוררות כאשר משתמשים ב-SVN.
היתרונות הבולטים של גיט הם:
1. יכולת לעבוד גם ללא חיבור לשרת מרכזי או לאינטרנט בכלל. בעוד שב-SVN אנו נדרשים לעבוד מול שרת מרכזי אחד. בגיט אנו יכולים לעבוד באופן מקומי לחלוטין – ליצור גרסאות, שינויים ולבצע קומיטים ורק כאשר השרת חוזר לפעול אנו יכולים לדחוף את השינויים שלנו.
2. יכולת לעבוד מול כמה שרתים בו זמנית. זה רלוונטי מאוד במקרים של קוד פתוח – אני יכול ליצור גרסה משלי של התוכנה על שרת משלי ולעדכן אותה על השרת שלי ובמקביל לשאוב את העדכונים מהשרת המקורי. כאשר אני מעוניין בכך, אני יכול לעדכן את הגרסה שעל השרת המקורי בקלות.
3. pull request – ניהול יותר חכם של בקשות מיזוג קוד בדרכים שה-SVN לא מאפשר. כך למשל קל הרבה יותר לבצע code review. גם כאשר מדובר בחברי צוות שמפוזרים על מרחב גיאוגרפי גדול.
4. גיט היא מבוססת שינויים (diff) ו-SVN היא מבוססת קבצים. לפיכל הביצועים של גיט עדיפים פי כמה וכמה. עם גיט בהחלט ניתן לנהל כמה וכמה ענפים ללא קושי כלל והמיזוגים גם הם נעשים בקלות רבה. מאוד רלוונטי לפרויקטים אג'יליים שצריכים לבצע מיזוגים גמישים יותר.
בגדול גיט מותאמת הרבה יותר טוב לצרכים של צוותים גדולים, אג'יליים שעובדים בביזור גיאורגרפי. אם אתם עובדים בצוות קטן (או לבד) ובשיטות פיתוח ותיקיות יותר כמו waterfall, יש מצב שגיט מתאימה לכם פחות.
במאמר הזה אנו נלמד איך להתקין גיט ולהתחיל לעבוד איתה בפרויקט.
התקנת גיט
אם אתם משתמשים בלינוקס, אז ההתקנה היא פשוטה למדי:
sudo apt-get install git-all
בדביאן (עם פדורה זה פשוט עם yum אבל אותו שם חבילה).
בחלונות זה גם קל (יחסית) – נכנסים ללינק הזה, מורידים את ה-EXE ומריצים.
איך בודקים? מאוד פשוט. בלינוקס פותחים את הקונסולה. בחלונות את את ה-cmd. כותבים git –version. זה מה שמקבלים:
$ git --version git version 1.9.1
אם כתבתם את זה וזה מה שיוצא – מעולה! הכל תקין. אם לא (במיוחד אם אתם משתמשים בחלונות) יש כמה דרכים לפתור את הבעיה. הראשונה היא להתקין את התוכנה של גיטהאב. אנחנו לא נשתמש בה במדריך הזה אבל היא כוללת גרסה מצויינת של גיט שאפשר להפעיל אותה גם מה-cmd.
זה לא משנה אם זה ב-cmd או בקונסולה. גיט עובד אותו הדבר בשניהם. במדריך הזה, כשאני אומר קונסולה אני מתכוון ל-cmd.
אחרי שהתקנו את git, כדאי שנכניס את השם והמייל שלנו להגדרות. למה זה חשוב? כי נוכל לראות את זה בלוג של הקומיטים (לא יודעים מה זה? סימן שלא עברתם על מדריך ה-SVN) וכמובן שברגע שעובדים עם אנשים אחרים מאוד חשוב לדעת מי עושה דברים בגיט.
ההגדרות הכלליות של הגיט עובדות דרך הקונסולה:
git config --list
כדי להכניס את שם המשתמש והמייל שלנו, אנו משתמשים בסינטקס הבא:
git config --global user.name "YOUR NAME" git config --global user.email "YOUR EMAIL ADDRESS"
על מנת לראות את כל ההגדרות, אנו נשתמש בפקודה:
git config --list
במחשב שלי למשל, זה נראה כך:
$ git config --list user.name=Ran Bar-Zik [email protected]
אנחנו יכולים לעשות עוד קונפיגורציות. אם המחשב שלנו מאחורי פרוקסי תאגידי, אנחנו חייבים לקנפג את הפרוקסי, עושים זאת באמצעות:
git config --global http.proxy http://proxyuser:[email protected]:8080 git config --global https.proxy https://proxyuser:[email protected]:8080
מהרגע שאנו עושים את זה, כל התעבורה של הגיט תעבור דרך הפרוקסי. ההגדרות של הגיט יכולות גם להכנס לתוך קובץ שנקרא gitconfig שנוצר באופן אוטומטי עם התקנת הגיט. אצל משתמשי לינוקס הוא נמצא ב
~/.gitconfig
בחלונות זה קצת יותר מסובך כמובן, וזה תלוי בגרסה. בחלונות 7 זה נמצא ב:
C:\Users\USERNAME\.gitconfig
אפשר לגשת לעריכה של קובץ ההגדרות באמצעות הקלדת הפקודה:
git config --global --edit
אבל בגדול מה שצריך ברוב המקרים זה את הגדרות שם המשתמש והמייל. בחברות גדולות תצטרכו את פרטי הפרוקסי ותעודות אבטחה שונות. בשלבים יותר מאוחרים נלמד על דברים יותר מגניבים שאפשר לעשות עם git config. אבל בינתיים זה מספיק.
במאמר הבא אנו נלמד על עבודה עם גיט מקומי: יצירה, קומיט, דחיפה, לוג וכל הג'אז הזה.
12 תגובות
הי רן
תודה רבה על המאמר, אני אוהב מאד את סגנון הכתיבה שלך וכל מדריך משובח ומקצועי מקודמיו. ברשותך:
ראיתי שהרבה משרות מתפרסמות עם בקשה ללינק בגיטהאב. האם הם מצפים לצפות בקוד המקור המלא של הפרויקטים שלי?
בוודאי. לא של הפרויקטים שעשית עבור המעסיקים שלך כמובן, אבל היום כן מצפים שלמפתחי ווב יהיה רקורד של תרומת קוד בגיטהאב.
מדריך שיהיה שימושי לרבים ללא ספק.
מותר לציין שבאתר של Git ישנם המון המון מדריכים שימושיים להורדה בחינם כחלק מהקונספט של מקום שמקדם קוד פתוח (למי שעוד יכול לעבור על pdf ארוך בימינו.. )
המון תודה! 🙂
תודה על סידרת המאמרים בנושא GIT.
הרבה זמן רציתי ללמוד את הנושא, והנה כתבת מאמרים בצורה פשוטה וברורה. תודה
היי
החומר כתוב בצורה מעולה
אפשר להוסיף אפשרות להדפסה מהאתר?
יעזור מאוד
תודה רבה
פוסט מעולה, תרם לי רבות.
לפיכל -> לפיכך
שיטות פיתוח ותיקיות יותר -> ותיקות
תודה רבה רן!
רק תיקון קטן: בwindows לפחות בשביל לבדוק את הגרסה
צריך לכתוב git –version (פעמיים מינוס ולא פעם אחת)
תודה רבה!
ממש ברור ועוזר לי
רציתי לשאול name ,email
אני כותבת שם תשם כפי שאני מופיעה בגיט או שם משתמש שבו אני נכנסת למערכת(שזה המייל שלי)
תודה רן המאמר ממש ברור!
רציתי לשאול בname מה אני כותבת תשם כמו שאני מופיעה בגיט או שם משתמש שבו אני נכנסתי לגיט?(והוא כתובת האימייל שלי)