לדלג לתוכן

גיט למתכנתי פייתון מתחילים - מדריך פרקטי בלי בלבול

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

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

למה בכלל צריך את זה

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

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

המושגים הבסיסיים שחייבים להבין

repository (repo) - התיקייה שגיט עוקב אחריה. כל פרויקט שאתם רוצים לנהל בגיט צריך repo משלו.

commit - תמונת מצב של הקוד שלכם ברגע נתון, עם הודעה שמסבירה מה השתנה. תחשבו על זה כמו נקודת שמירה במשחק.

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

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

הפקודות שבאמת תשתמשו בהן

בואו נעבור על הזרימה הבסיסית שתחזרו עליה כמעט כל יום:

git init                          # הופך תיקייה לפרויקט גיט
git add my_file.py                # מסמן קובץ לשמירה ב-commit הבא
git add .                         # מסמן את כל הקבצים ששונו
git commit -m "הוספתי פונקציית התחברות"   # שומר תמונת מצב עם הודעה
git status                        # מראה מה השתנה ומה עדיין לא נשמר
git log                           # מראה היסטוריה של commits

וברגע שיש לכם repo מרוחק ב-GitHub:

git push          # שולח את השינויים שלכם לשרת
git pull          # מוריד שינויים חדשים מהשרת
git clone <url>   # מוריד עותק שלם של פרויקט קיים

הודעת commit היא לא פרט טכני

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

# רע
git commit -m "fix"

# טוב
git commit -m "תיקנתי חלוקה באפס בפונקציית חישוב הממוצע"

קובץ gitignore - החבר שלכם

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

__pycache__/
venv/
.env
*.pyc

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

אל תפחדו לשבור דברים

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

לסיכום

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

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

בנו הרגלים נכונים מהיום הראשון בקורס תכנות בסיסי

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

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