Git – מבוא

התקנה והגדרה של גיט בחלונות ובלינוקס.
Git logo

במדריך הזה אני מסביר על מערכת ניהול הגרסאות המבוזרת 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. אבל בינתיים זה מספיק.

במאמר הבא אנו נלמד על עבודה עם גיט מקומי: יצירה, קומיט, דחיפה, לוג וכל הג'אז הזה.

פוסטים נוספים שכדאי לקרוא

פתרונות ומאמרים על פיתוח אינטרנט

נגישות טכנית – פודקאסט ומבוא

פרק בפודקאסטעל נגישות בעברית שצולל לכלים האוטומטיים ולפן המאד מאד טכני של הנגישות.

גלילה לראש העמוד