מדריך מהיר · Git & GitHub

GitHub למתחילים

כל מה שצריך לדעת כדי להתחיל לעבוד עם Git ו-GitHub — מושגי יסוד, פקודות, זרימת עבודה, וטיפים מהשטח.

~10 דקות קריאה
כל רמות הניסיון
Git 2.x ומעלה
01

מושגי יסוד

📁
Repository (Repo)
תיקיית פרויקט מנוהלת על ידי Git. מכילה את כל הקבצים, היסטוריית ה-commits, והגדרות.
📸
Commit
שמירת snapshot של הקוד עם הודעה מסבירה. כל commit מקבל ID ייחודי (hash).
🌿
Branch
ענף עצמאי לפיתוח פיצ'ר או תיקון. לא פוגע ב-main עד ה-merge.
🔀
Merge
מיזוג שינויים מענף אחד לאחר. בד"כ מ-feature branch חזרה ל-main.
⬆️
Push / Pull
Push = העלאת commits לשרת (GitHub). Pull = הורדת עדכונים מהשרת למחשב.
🍴
Fork / Clone
Fork = עותק של ריפו ב-GitHub שלך. Clone = הורדת הריפו כולו למחשב המקומי.
📋
Pull Request (PR)
בקשה לאחד ענף ל-main. מאפשרת code review לפני ה-merge.
🏷️
Tag / Release
סימון גרסה ספציפית בהיסטוריה, כגון v1.0.0. משמש ל-release management.
02

הגדרה ראשונית — פעם אחת

Terminal · git config
# הגדרת שם ואימייל (מופיע בכל commit) git config --global user.name "Yaakov Bidani" git config --global user.email "[email protected]" # ברירת מחדל לשם ענף ראשי git config --global init.defaultBranch main # בדיקת ההגדרות git config --list
🔐
SSH Keys: מומלץ להגדיר SSH במקום HTTPS. הפקד ssh-keygen -t ed25519 -C "[email protected]" ואז העתק את המפתח הציבורי ל-GitHub Settings → SSH Keys.
03

זרימת עבודה יומיומית

1
יצירת ריפו חדש או שיבוט קיים
פעם ראשונה — מאתחלים ריפו חדש לגמרי, או מורידים ריפו קיים מ-GitHub.
Terminal · init / clone
# ריפו חדש לגמרי mkdir my-project && cd my-project git init # שיבוט ריפו קיים מ-GitHub git clone https://github.com/username/repo.git # שיבוט עם שם תיקייה מותאם git clone https://github.com/username/repo.git my-folder
2
פתיחת ענף חדש
לעולם לא עובדים ישירות על main — פותחים ענף ייעודי לכל פיצ'ר או תיקון.
Terminal · branch
# פתיחת ענף חדש ומעבר אליו (שיטה ישנה) git checkout -b feature/user-auth # פתיחת ענף חדש (שיטה חדשה, Git 2.23+) git switch -c feature/user-auth # מעבר לענף קיים git switch main # הצגת כל הענפים git branch -a
📝
מוסכמת שמות ענפים: feature/ לפיצ'ר חדש, fix/ לתיקון באג, hotfix/ לתיקון דחוף ב-production, docs/ לתיעוד.
3
עריכה → Stage → Commit
אחרי שינויים בקוד — מסמנים את הקבצים הרצויים ושומרים snapshot.
Terminal · stage & commit
# בדיקת סטטוס — מה שינינו? git status # הוספת קבצים ספציפיים ל-stage git add index.html style.css # הוספת כל השינויים ל-stage git add . # הצגת מה בדיוק השתנה (לפני add) git diff # שמירת commit עם הודעה git commit -m "feat: add login form with validation" # add + commit בפקודה אחת (לקבצים שכבר track'd) git commit -am "fix: resolve null pointer in auth"
4
Push לשרת
מעלים את הענף עם כל ה-commits ל-GitHub.
Terminal · push
# העלאה ראשונה של ענף חדש (מגדיר upstream) git push -u origin feature/user-auth # הפעמים הבאות — פשוט git push # משיכת עדכונים מ-remote לפני push git pull origin main
5
Pull Request + Merge
ב-GitHub פותחים PR, עורכים code review עם הצוות, ואז מאחדים ל-main.
🌐
אחרי ה-push — GitHub מציג כפתור "Compare & pull request" אוטומטית. בחרו reviewers, כתבו תיאור ברור, ואחרי approval לוחצים Merge pull request. לאחר המיזוג — מחקו את הענף הישן.
04

ויזואליזציה — איך עובדים ענפים

main
v1.1 ← merge
v1.2 ← merge
feature/login
──→ PR →──
hotfix/crash
──→ PR →──

● עיגול מלא = commit על main  ·  עיגול ריק = commit על ענף  ·  PR = Pull Request

05

Cheat Sheet — פקודות חיוניות

git status
מה שינינו? מה ב-stage? מה untracked?
git log --oneline
היסטוריית commits בשורה אחת לכל commit
git diff
הצגת השינויים המדויקים בקוד (לפני stage)
git diff --staged
הצגת מה ב-stage לפני ה-commit
git pull
משיכת עדכונים מהשרת ומיזוגם
git fetch
הורדת עדכונים ללא מיזוג אוטומטי
git stash
שמירת שינויים זמנית ללא commit
git stash pop
שחזור שינויים אחרונים מה-stash
git reset HEAD~1
ביטול commit האחרון (שומר את השינויים)
git revert [hash]
יצירת commit הפוך שמבטל commit קיים
git branch -d name
מחיקת ענף לאחר merge (בטוח)
git merge --no-ff
מיזוג עם שמירת היסטוריית הענף
git rebase main
עדכון ענף לבסיס ה-main הנוכחי
git cherry-pick [hash]
העתקת commit ספציפי לענף הנוכחי
git tag v1.0.0
סימון גרסה על commit הנוכחי
git remote -v
הצגת כתובות ה-remote המוגדרות
06

.gitignore — מה לא להעלות

קובץ .gitignore בשורש הפרויקט מגדיר אילו קבצים Git יתעלם מהם לחלוטין.

דלגnode_modules/
דלג.env
דלג.env.local
דלגdist/
דלגbuild/
דלג*.log
דלג.DS_Store
דלג.idea/ / .vscode/
כלולpackage.json
כלולpackage-lock.json
כלול.env.example
כלולREADME.md
⚠️
חשוב: קובץ .env עם API keys, סיסמאות, או secrets לעולם לא יעלה ל-GitHub! השתמשו ב-.env.example עם ערכי placeholder, ודאגו ש-.env ב-.gitignore.
07

Commit Messages — Convention

Conventional Commits
# פיצ'ר חדש git commit -m "feat: add user registration flow" # תיקון באג git commit -m "fix: resolve null pointer in token validation" # תיעוד git commit -m "docs: update API endpoint documentation" # refactor (ללא שינוי פונקציונלי) git commit -m "refactor: extract auth logic to service class" # סטייל / פורמט git commit -m "style: apply ESLint formatting" # שיפור ביצועים git commit -m "perf: lazy-load dashboard components" # תצורה / build git commit -m "chore: upgrade dependencies to latest"
💡
כלל הזהב: הודעת commit טובה משלימה את המשפט: "If applied, this commit will..." — כתבו בגוף שלישי יחיד, בלי נקודה בסוף, עד 72 תווים בשורה הראשונה.