קצת על גיט

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

1. מהו גיט

גיט הוא כלי לניהול גירסאות של תוכנה. הוא פותח על ידי לינוס טורוולדס ושוחרר לראשונה ב 2005. גיט פותח כדי להחליף תוכנות שהיו לפניו ועזרו לנהל גירסאות, והצעד הראשון שלנו כדי להבין את גיט, עוד לפני שמבינים מה מייחד אותו לעומת התוכנות האחרות, יהיה להבין מה זה בכלל אומר ניהול גירסאות של תוכנות.

2. בעיה ראשונה - Undo

מכירים את זה שאתם עובדים על קוד, דברים עובדים לא רע, אחרי זה אתם ממשיכים לנסות לתקן או לשפר ופתאום כלום כבר לא עובד? בנקודה הזאת מתחשק ללחוץ על Undo בעורך הטקסט ולחזור למקום שבו היינו, לזמן שבו הכל עבד.

הבעיה היא שהפונקציה של Undo בעורך טקסט רוב הזמן לא מספיק טובה. ה Undo יכול לחזור אחורה בקובץ אחד, אבל בפרויקט יש לנו הרבה פעמים מספר קבצים והשינויים בהם צריכים להיות מתואמים. רוב עורכי הטקסט יכולים "לחזור אחורה" רק בזמן שהם פעלו, ואם אני יוצא מהעורך כל הזיכרון נמחק, ואולי הכי חשוב - אני לא יכול בעורך טקסט "לשמור" את הפרויקט בנקודת זמן וסוג של להדביק עליו מדבקה "עובד" ואחרי זה לראות את כל נקודות השמירה שעשיתי. ה undo חוזר בשבילי עריכה אחת כל פעם, וכך קשה לי להיזכר לאיזה נקודה בדיוק אני רוצה לחזור.

מערכת לניהול גירסאות היא מערכת שמאפשרת לי "לשמור" את מצב התוכנה שלי ברגע מסוים כדי שאוכל לחזור בעתיד לאותו מצב, אם בשביל להיזכר איך דברים היו בעבר או בשביל לבטל איזשהו שינוי שניסיתי לעשות ולא צלח.

3. בעיה שניה - מה רץ אצל הלקוח

הצעד הבא אחרי פיתוח התוכנה הוא העברת התוכנה ללקוח, ואם נמשיך לדמיין קדימה נשים לב שבתהליך פיתוח רגיל אחרי שנותנים ללקוח תוכנה אנחנו ממשיכים לעבוד על תיקונים ושיפורים ומעבירים גירסה נוספת ללקוח. הרבה פעמים יש לי לקוחות שונים שמריצים גירסאות שונות של התוכנה (למשל כי לא כולם הספיקו או רוצים לשדרג).

במצב כזה מאוד עוזר לשמור את הקוד של כל אחת מהגירסאות, למשל כי אם לקוח מסוים שעובד על גירסה 3 של התוכנה נתקל בבעיה אני רוצה להיות מסוגל להריץ את גירסה 3 על המחשב שלי, למרות שהגירסה החדשה ביותר של הפרויקט שלי היא 5.

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

4. בעיה שלישית - שיתוף פעולה

כשיש לנו מספר אנשים שעובדים על אותו פרויקט אנחנו צריכים לשתף את הקבצים ביניהם. כל אחד צריך לראות את השינויים שאחרים הכניסו ולפעמים מספר אנשים מנסים לשנות (כל אחד בביתו) את אותו קובץ ואפילו את אותה פונקציה, ואז צריך להבין באיזה שינוי להשתמש או איך לשלב בין השינויים.

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

5. מה צפוי לנו בקורס

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

אני מקווה שתהנו מהקורס ובטוח שתלמדו המון. מוכנים? בואו נתחיל בהתקנת הכלים.