כאשר כותבים קוד שהולך וגדל, לא פעם אנחנו מסתבכים ורוצים לחזור אחורה לגרסה שעבדה - ואז מתחיל בלאגן.. לעיתים אנחנו מפתחים פיצ'ר חדש ובאמצע נאלצים לעצור ולעבוד על משהו אחר, או אנחנו רוצים להיזכר במה השתנה בקוד בשבוע האחרון.
וכאשר אנחנו מתקדמים ועובדים בזוגות או בצוותים, וכל אחד מפתח חלק אחר בפרויקט - האתגר נהיה גדול אפילו יותר: איך מסנכרנים בין כולם בלי לדרוס שינויים? בקיצור, בלי מערכת מסודרת לניהול גרסאות, מהר מאוד נוצר "סלט” שמקשה להתקדם.
Git הוא הכלי שנותן מענה לסוגיות אלו!
Git הוא כלי לניהול גרסאות (Version Control System) שניתן להתקין על המחשב המקומי שלכם. הוא מאפשר לעקוב אחרי שינויים בקוד, לחזור אחורה לגרסאות קודמות, לעבוד על פיצ'רים במקביל ולמנוע אובדן מידע. אבל כאשר רוצים לעבוד בצוות, לשתף קוד עם אחרים, או להציג פרויקטים כפורטפוליו לעולם - צריך מקום משותף שבו כל הקוד יאוחסן בענן. כאן נכנס לתמונה GitHub: פלטפורמה שמחזיקה את ה־repositories שלכם ברשת, מאפשרת עבודה משותפת, Code Review, ניהול משימות ושמירה מאובטחת ומסודרת של הפרויקט. כלומר: Git מנהל את הגרסאות במחשב שלכם, ו-GitHub נותן לבית משותף לקוד בענן, כך שכולם יכולים לעבוד עליו יחד.
בתעשייה קיימות חלופות ל-GitHub, כמו GitLab, Bitbucket ו-Azure DevOps, אך כולן משתמשות באותו מנגנון בסיסי של Git. כסטודנטים, שימוש ב-Git יחד עם GitHub מאפשר לכם לעבוד באופן מקצועי בדיוק כמו מפתחים בתעשייה: לתעד שינויים, לנהל פרויקטים ארוכים, לעבוד בצוות, לפתח פיצ'רים ב- branch'ים, ולהציג תיק עבודות איכותי למקומות עבודה. לכן Git ו-GitHub הם כישורי חובה לכל מי שרוצה לפתח בעולם האמיתי!
ולכן כתבתי לכם את מדריך הפקודות הבסיסיות לעבודה עם github!
ראשית, התקנות וחשבון משתמש
אז git אנחנו חייבים להתקין, ואני ממליצה לא לוותר על הסינכרון מול הענן, אפילו אם אתם עובדים לבד.
ההתקנות פשוטות ולהלן הסברים ההתקנה:
התקנת Git באופן מקומי - מה באמת צריך להתקין?
לפני שעובדים עם Git, יש להתקין אותו כמערכת נפרדת על מערכת ההפעלה שלכם (Windows / macOS / Linux).
Git אינו מגיע מובנה ברוב ה־IDE-ים ולכן יש להתקין אותו פעם אחת באופן עצמאי.
לאחר ההתקנה, כל תוכנה - VS Code, Eclipse, IntelliJ, Visual Studio ו- PyCharm - תדע להשתמש ב־Git שהותקן במחשב, בלי צורך בהתקנות נוספות.
💡במילים אחרות:
מתקינים Git פעם אחת בלבד על המחשב, וכל הסביבות (IDE) משתמשות באותו Git מותקן.
💡מתי כן צריך התקנה מיוחדת?
1- Visual Studio (לא VS Code): בחלק מהגרסאות הוא מציע להתקין Git כחלק מה-Installer שלו, אבל בפועל זה אותו Git שאתם מתקינים בעצמכם. אם הוא מזהה שאין Git במערכת - יוצע להתקין.
2- Linux: בהרבה הפצות Git כבר מותקן מראש, אבל אם לא - מריצים apt install git או yum install git.
סיכום קצר:
✅️ מתקינים Git פעם אחת בלבד
✅️ VS Code / Eclipse / Visual Studio משתמשים בו אוטומטית
✅️ לא צריך "להתקין Git לכל IDE" - ה־IDE רק "מדבר" עם ההתקנה שכבר קיימת
התקנה וחיבור ל- github
אם נרצה לסנכרן את המידע המקומי לענן, למשל כדי לעבוד בצוות או כדי שנוכל להציג את תיק העבודות שלנו בקישור לעולם, עלינו ליצור חשבון באחד משירותי הענן. במדריך זה אסביר על פלטפורמת github.
1- יצירת חשבון חינמי באתר github
2- אתחול עבודה מול ה- github בפעם הראשונה
כדי להתממשק בין הגרסה המקומית לענן באופן פשוט דרך סביבת העבודה, יש להתקין את ממשק העבודה מול ה- github לוקאלית במחשב, וזהו הכלי gh.
להתקנה הקלידו בטרמינל:
winget install --id GitHub.cli
3- לאחר ההתקנה נרצה לסנכרן את ההתקנה לחשבון ה- github שלנו ולכן נקליד בטרמינל:
gh auth login
במהלך החיבור הוא ישאל אתכם לפרטי חשבון ה- github שלכם והאם אתם רוצים להתחבר דרך ה- web (כן!). הוא יציג לכם קוד מספרי שאותו תשימו ב- github בתהליך האישור, ובסיום המחשב שלכם מקושר לחשבון שלכם!
אם הפקודה gh אינה מזוהה, כנראה המחשב לא עידכן את המסלול שלה, ולכן יש לפנות אליה עם המסלול המלא באופן הבא דרך הטרמינל:
& "C:\Program Files\GitHub CLI\gh.exe"
ובהמשך השורה את המשך הפקודה, למשל:
& "C:\Program Files\GitHub CLI\gh.exe" auth login
לאחר חיבור אפשר לכתוב את הפקודה
gh auth status
ולראות שאנחנו אכן מחוברים.
ואת ההתקנות האלו כמובן צריך לעשות בפעם הראשונה בלבד.
⬆ חזרה לתוכן העניינים
עבודה בסיסית עם Git בממשק הקונסול
כאשר עובדים עם Git, רוב הפעולות מתבצעות דרך ממשק הקונסול (Terminal / Command Line). מטרת החלק הזה היא להציג את זרימת העבודה הבסיסית ביותר: יצירת מאגר מקומי, בדיקת מצב הקבצים, הוספת שינויים, יצירת commit ודחיפה לשרת המרוחק.
יצירת Repository (מאגר) מקומי מתוך פרויקט קיים
כאשר יש לכם תיקייה עם קוד קיים ואתם רוצים להתחיל לנהל אותה באמצעות Git, צריך "להפוך" אותה ל- repository מקומי. לכן יש לפתוח טרמינל בסביבת העבודה ולהגיע לתיקיה בה נמצא הפרוייקט באמצעות פקודת cd (change directory) ושם לכתוב את הפקודה:
git init
הפקודה יוצרת תיקיית git. נסתרת שמכילה את כל המידע הדרוש לניהול הגרסאות.
בדיקת מצב הקבצים: git status
פקודה זו מציגה מה מצב הפרויקט כרגע: אילו קבצים חדשים, אילו קבצים השתנו, האם יש commits שלא נדחפו ועוד.
git status
הוספת שינויים לאזור ההכנה (Stage): git add
כדי ש־Git יכלול שינויים ב־commit הבא, צריך "להעלות" אותם ל־stage.
הוספת כל השינויים:
git add .
הוספת קבצים מסוימים:
git add file1.js file2.css
השלב הזה מאפשר לכם שליטה מלאה על אילו קבצים ייכנסו ל־commit הבא.
יצירת commit עם תיאור: git commit
Commit הוא נקודת שמירה בהיסטוריה של הקוד - כמו שמירת "גרסה רשמית".
git commit -m "תיאור ברור של מה השתנה"
חשוב שהתיאור יהיה משמעותי: הוא חלק מההיסטוריה המקצועית של הקוד, וכמובן באנגלית!!
דחיפה לשרת מרוחק: git push
אחרי יצירת commits מקומיים, צריך לדחוף אותם לשרת המרוחק (כגון GitHub).
בפעם הראשונה שרוצים להעלות את הפרוייקט לענן, יש לייצר repository (מאגר) עבור הפרוייקט בענן:
gh repos create "<project name>" --public --source
לאחר פקודה זו אתם יכולים להיכנס לחשבון שלכם באתר של github וממש לראות את את תיקיית הפרוייקט, שכרגע עדיין תהיה ריקה, מאחר ועדיין לא "דחפנו" אליה את הקבצים המקומיים שלנו.
כדי להעלות את קבצי הפרוייקט לענן בפעם הראשונה:
git push -u origin main
בחלק מהמקרים שם repository ברירת המחדל יקרא master (ולא main) ואז יש להחליף בפקודה את המילה main במילה master. כדי להיות בטוחים מה שמו ניתן לכתוב:
git status
בדחיפות הבאות מספיק:
git push
הפקודה תשלח ל-GitHub את כל ה־commits החדשים ותעדכן את הקוד בענן.
⬆ חזרה לתוכן העניינים
עבודה עם Branch (סניף)
1. יצירת Branch חדש ומעבר אליו
יצירת סניף חדש ומיד לעבור אליו:
git checkout -b feature/my-new-feature
או בשני שלבים נפרדים:
git branch feature/my-new-feature # יצירת הסניף
git checkout feature/my-new-feature # מעבר לסניף החדש
2. ביצוע שינויים בקבצים
בשלב זה פשוט עורכים את הקבצים בעזרת ה־IDE או עורך הטקסט שלך.
3. בדיקה אילו קבצים השתנו
git status
4. הוספת (Stage) של שינויים ל-Commit
הוספת כל הקבצים שהשתנו:
git add .
או הוספת קבצים מסוימים בלבד:
git add file1.js file2.js
5. יצירת Commit עם תיאור
git commit -m "תיאור ברור של מה ששינית"
6. דחיפת ה-Branch ל-GitHub בפעם הראשונה
בפעם הראשונה שדוחפים את הסניף לשרת, משתמשים ב־-u כדי לקשר בין הסניף המקומי לסניף המרוחק:
git push -u origin feature/my-new-feature
7. דחיפות נוספות (אחרי הפעם הראשונה)
לאחר שהקישור הוגדר, מספיק להריץ:
git push
⬆ חזרה לתוכן העניינים
שינוי שם של Branch מקומי
שינוי שם כשנמצאים כרגע בתוך ה-Branch
git branch -m new-name
שינוי שם כשלא נמצאים בתוך ה-Branch
מציינים גם את השם הישן וגם את החדש:
git branch -m old-name new-name
⬆ חזרה לתוכן העניינים
מיזוג שינויים מה-Branch הנוכחי ל-main (Branch ראשי של Production)
1. מעבר ל-main
git checkout main
2. משיכת השינויים האחרונים מהשרת
כדי לוודא שה־main המקומי מעודכן לפני המיזוג:
git pull origin main
3. מיזוג ה-Feature Branch אל main
בדוגמה זו, שם הסניף הוא feature/ask-for-input-in-generated-algorithm:
git merge feature/ask-for-input-in-generated-algorithm
4. דחיפת השינויים ל-GitHub
git push origin main
⬆ חזרה לתוכן העניינים
קבלת הגרסה מהשרת ודריסת שינויים מקומיים
1. דריסת כל השינויים המקומיים כך שהתיקייה תיראה כמו origin/main
משתמשים בשיטה זו כאשר רוצים להתעלם מכל השינויים המקומיים (גם כאלה שלא בוצע להם commit)
ולהפוך את הקוד המקומי לזהה למה שנמצא ב־origin/main,
בלי קשר לאיזה Branch מקומי אנחנו עומדים כרגע.
אזהרה: הפקודה reset --hard מוחקת שינויים מקומיים שלא נשמרו ב-commit.
git fetch --all
git reset --hard origin/main
2. התאמת ה-Branch המקומי לגרסה שלו בשרת
כאשר רוצים שהסניף המקומי הנוכחי יהיה זהה לחלוטין לסניף המתאים בשרת (אותו שם),
כולל היסטוריית ה-commits. כאן מניחים שאת כבר נמצאת על ה-Branch המתאים.
git fetch
git reset --hard your-branch-name
גם כאן, כל השינויים המקומיים הלא שמורים (לא ב-commit) יימחקו, והסניף ייראה בדיוק כמו בשרת.
⬆ חזרה לתוכן העניינים
פקודות Git שימושיות נוספות
צפייה בכל ה-Branches
git branch -a
מעבר בין Branches
git checkout branch-name
מחיקת Branch מקומי (אחרי מיזוג)
משתמשים בדרך כלל אחרי שהסניף מוזג ל-main (או לסניף אחר) ולא צריך אותו יותר:
git branch -d feature/my-new-feature
מחיקת Branch מרוחק ב-GitHub
git push origin --delete feature/my-new-feature
צפייה ב-Commits האחרונים
לדוגמה, צפייה ב־5 ה-commits האחרונים בפורמט מקוצר:
git log --oneline -5
עריכת ה- commits האחרונים
הפקודה מבקשת מ- git את האפשרות לערוך את n ה- commits האחרונים:
git rebase -i HEAD~n
הפקודה פותחת ממשק ובו אפשרויות לשנות את ההודעה ב- commit, למחוק אותם לגמרי, לאחד כמה commits לאחד וכו'.
⬆ חזרה לתחילת העמוד