fbpx

01. מבוא והתקנה

הקדמה

שלום סטודנטים, וברוכים הבאים למדריך הסוּפֶּר חשוב שלפנינו, בו נספר על הכלי שכל מתכנת צריך להכיר ולהשתמש בו – “גיט”.

גיט, או באנגלית Git, היא מערכת לניהול גרסאות.

ההגדרה המקצועית לגיט היא Distributed Version Control System.

הכלי מבוסס קוד פתוח, והוצג לראשונה בשנת 2005.

 

אתם בטח מיד שואלים את עצמכם, מהי מערכת לניהול גרסאות?

ובכן, מטרה של מערכת כזו כשמה כן הוא, לנהל את גרסאות הקוד של התוכנה שלנו.

 

איזה סוג ניהול נדרש?

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

ועדיין, אם רציתם לשמור גרסה כלשהי של התוכנית, בטח שמרתם את הקוד תחת קובץ או תיקיה בצד, והמשכתם לכתוב את הקוד בתיקיה המקורית. עשיתם מה שנקרא “Snapshot Copy”.

 

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

מן הסתם הקוד עבר תהליכים רבים בדרכו לנקודה הנוכחית.

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

ובכלל, ישנם כמה גרסאות של קוד התוכנה. אם לפי פיצ’רים מסוימים, אם לפי לקוחות שונים, או תאריכים שונים.

 

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

צוות כזה חייב לעבוד בדרך יעילה שתאפשר לו לפחות:

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

ובכן, גיט מאפשרת את כל זה.

 

המדריך מחולק לשני חלקים. הראשון והעיקרי בו נלמד להכיר את הכלי ה-open-source הנקרא גיט.

לאחר מכן נכיר גם את הפלטפורמה GitHub, שמשמשת פלטפורמה לגיט – בענן. 

 

קצת תיאוריה

בשביל לנהל את הקוד שלנו תחת גיט, נצטרך ליצור “כספת” – Repository, או בקיצור repo, שזה כמו “פרויקט חדש” בגיט. 

הפקודה הנקראת:

				
					init
				
			

היא פעולת האתחול שיוצרת ריפו (repo) חדש. 

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

 

תיאוריית הענפים

אם יש לנו 2 גרסאות של הקוד בגיט, זה אומר שבגיט ישנם 2 בראנצ’ים (ענפים). כרגע לא נרד לעומק ההבנה יותר מכך, אבל נבין שכאשר יצרנו ריפו, נוצר גם “ענף” ברירת מחדל, שהשם שלו master (או main, תלוי איפה… יש שטוענים שהשימוש במילה master עלולה להיות פוגענית).

לאחר שיצרנו ריפו, הענף הראשי נוצר אך הוא עדיין ריק.

בשביל להוסיף קבצים לענף נצטרך להשתמש בפקודה:

				
					add
				
			

פקודה זו מקבלת קובץ (או מספר קבצים) ו”מוסיפה” אותם לגיט.

מה זה אומר מוסיפה?

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

 

רגע, אמרת שינויים. שינויים ממתי?

זו שאלה נכונה. גיט יתחיל לבצע מעקב אחר שינויים רק מנקודה שבה “שמרנו” שינוי כלשהו. 

פעולת ה-add לא באמת שומרת את השינויים לגיט, אלא רק מעלה את השינויים לשלב שנקרא Staging

מהשלב הזה נוכל להחליט לבטל את השינוי, והוא לא יופיע בגיט. וזאת בגלל שלא עשינו “שמירה” אלא רק “הוספה”.

פעולת השמירה היא על ידי הפקודה:

				
					commit
				
			

הפקודה קומיט היא כמו Save

כמו הפקודה add, גם הפקודה commit מקבלת קובץ או מספר קבצים שהתווספו או שנעשו בהם שינויים – וכבר בוצע עליהם פקודת ה-add.

לאחר שימוש בפקודה קומיט, גיט יוצר ID לפעולה הזו (commit id), כך שמתי שנרצה בעתיד, נוכל לחזור לגרסה הזו שנשמרה. 

דרך ה-ID הזה שנוצר ב-commit נוכל בהמשך לראות את השינויים שנעשו או הקבצים שהתווספו באותו זמן.

 

אז לסיכום בואו נריץ רגע Scenario (תרחיש):

  1. יצרנו פרויקט גיט בתיקיה A – פעולת init
    • התווסף קובץ git.
  2. תחת תיקיה A היה כבר קובץ קיים בשם my_program.py
    • הגיט לא מכיר בו בכלל.
  3. הוספנו ע”י add את הקובץ לגיט
    • הקובץ התווסף לגיט, והוא בשלב Staging
  4. עשינו קומיט (commit) על הקובץ.
    • הוא התווסף לריפו שלנו, ולנצח נוכל לראות את הגרסה הנוכחית שלו.
    • נוצר גם Commit-ID.
  5. עשינו שינויים נוספים בקובץ
    • השינויים ניתנים לצפייה בהשוואה מול ה commits שבגיט, אבל הם לא “נכנסו” לגיט.
  6. נעשה הוספה לקובץ
    • השינויים החדשים יהיו ב-Staging.
  7. נעשה קומיט על הקובץ
    • השינויים החדשים יתווספו לגיט, וכעת בגיט יהיו 2 קומיטים, האחד הראשון בשלב האתחול, עם התוכן הראשוני שהיה בקובץ, והקומיט הנוסף של השינויים האחרונים.

 

פרקטיקה

התקנה

הנחת העבודה שלי היא שיש לכם מחשב שמריץ Windows, ולכן המדריך יוכוון לשימוש בחלונות, אם כי חוץ מחלק ההתקנה, כל השאר די אותו הדבר.

בשביל להשתמש בגיט, תחילה נצטרך להתקין את Git במחשב שלנו.

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

לאחר שהורדנו ושמרנו את הקובץ איפשהו במחשב, נלחץ עליו להתקנה. (כנראה נדרש לאשר למערכת ההפעלה את ההתקנה, נבחר ב-Yes), נלחץ על Next כפעמיים (אין משהו שקריטי לבדוק), ונמתין שההתקנה תסתיים.

התקנת גיט במחשב מגיעה עם תוכנות עזר שנוכל להשתמש בהן בשביל לעבוד עם גיט, האחת היא Git Bash שהיא CLI (קיצור של Command Line Interface), כמו גם Git CMD, וכן Git GUI לממשק ויזואלי.

 

הפעלה

לאחר ההתקנה, נוכל לראות ש-Git מותקנת במחשב שלנו על ידי לחיצה במקלדת על כפתור “חלונות” (Windows) ואז נקליד “git”.

בתוצאות נוכל לראות את תוכנות העזר שציינתי.

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

אנו נלמד תחילה לעבוד עם Git Bash, (מה שנלמד תקף גם עם Git CMD) ולשם כך נלחץ על התוצאה הזו, ויפתח לנו חלון CLI.

חלון זה הוא חלון דרכו נוכל להקליד פקודות גיט. 

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

 

פקודות בסיסיות ב-Bash:

אם נקליד:

				
					pwd
				
			

לאחר שנלחץ אנטר, פלט הפקודה יהיה כתובת התיקיה שבה אנו “נמצאים”.

אם נקליד:

				
					ls
				
			

הפלט יהיה רשימת הקבצים והתיקיות הקיימים תחת התיקיה הנוכחית.

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

				
					cd /c/Users/ori/my_folder
				
			

אם נרצה לפתוח את התיקיה הנוכחית באמצעות ה-Explorer (תצוגת החלונות הרגילה של מערכת ההפעלה) נוכל להשתמש בפקודה:

				
					explorer .
				
			

אם נרצה לפתוח את ה-Git Bash ישירות לתוך תיקיה מסוימת, נלך לתיקיה הזו ב-Windows, ואז ע”י קליק ימני נוכל לבחור באופציה:

Git Bash Here

לאחר מכן יפתח לנו החלון הנ”ל ישירות לתוך התיקיה הנדרשת.

מכאן ואילך נוכל לבחור להמשיך לעבוד עם Git Bash (לדעתי נוח ורצוי) או עם כל CMD אחר, כמו זה המובנה ב-Windows.

כניסה

שכחתי סיסמה

אין לך חשבון? להצטרפות

איפוס סיסמה:

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

ברכות! סיימתם את השיעור הראשון בקורס!

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

שינוי סיסמה

עריכת פרטים אישיים