מדריך עבודה עם git ו- github

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

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 לאחד וכו'.

⬆ חזרה לתחילת העמוד

ליצירת קשר, מלא/י פרטים: