לדלג לתוכן

מה זה גיט ולמה כל מתכנת חייב אותו

בואו נתחיל מהודאה כנה - כשהתחלתי לתכנת, לא הבנתי בשביל מה בכלל צריך git. כתבתי קוד, שמרתי קובץ, זה עבד. מה כבר יכול להשתלם בללמוד כלי חדש שלם רק בשביל זה?

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

הבעיה שגיט פותר

לפני שהיה git, וגם היום אצל מי שעדיין לא למד אותו, יש רק דרך אחת "לגבות" קוד - להכפיל קבצים. מכירים את זה?

project.py
project_v2.py
project_v2_final.py
project_v2_final_ACTUALLY.py
project_v2_final_ACTUALLY_fixed.py

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

git הוא כלי שנקרא "מערכת בקרת גרסאות" - version control system. במקום להכפיל קבצים שלמים, הוא שומר היסטוריה מלאה של כל שינוי שעשיתם בפרויקט, לאורך כל הדרך, כשכל שלב מתועד עם הודעה שמסבירה מה קרה.

איך זה עובד ברמת העיקרון

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

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

זה לא רק בשביל צוותים

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

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

אז מה בעצם עושים איתו

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

בפועל, הזרימה היומיומית נראית ככה - אתם כותבים קוד, אומרים לגיט לעקוב אחרי הקבצים ששיניתם, ושומרים commit עם הודעה קצרה. זהו. אחרי כמה ימים זה הופך לרפלקס טבעי בדיוק כמו Ctrl+S.

למה כדאי ללמוד את זה כבר עכשיו

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

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

התחילו את קורס התכנות הבסיסי כאן

לסיכום

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

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

הצטרפו לקהילה בדיסקורד