git commit

מה זה עושה

שומר snapshot של השינויים הנוכחיים בהיסטוריית הפרויקט.

מבנה

git commit [-m "הודעה"] [--amend] [--no-edit] [-a]

פרמטרים

פרמטרמשמעותחובה?
-m "הודעה"הודעת commit בשורת הפקודהמומלץ
--amendתיקון ה-commit האחרוןלא
-aהוסף אוטומטית כל קובץ עקובלא
--no-editשמור הודעה קיימת בעת amendלא

דוגמאות

בסיסי:

# שמירת שינויים עם הודעה ברורה
git commit -m "feat: הוספת מסך התחברות"

פורמט מלא (Conventional Commits):

# feat = פיצ'ר חדש
git commit -m "feat: הוספת login עם Google OAuth"

# fix = תיקון באג
git commit -m "fix: תיקון crash בטעינת תמונות"

# docs = תיעוד בלבד
git commit -m "docs: עדכון README עם הוראות התקנה"

# refactor = שינוי מבנה ללא שינוי התנהגות
git commit -m "refactor: פיצול קומפוננטת Header"

# chore = תחזוקה (dependencies, config)
git commit -m "chore: עדכון גרסת React ל-19"

תיקון commit אחרון:

# שכחת קובץ? תוסיף אותו ותתקן
git add forgotten-file.js
git commit --amend --no-edit

בתוך Claude Code:

# Claude מבצע commit אוטומטית כשאתה אומר:
"שמור את השינויים"
"תעשה commit עם הודעה: הוספת דף אודות"

# או ישירות:
/git commit -m "feat: הוספת דף אודות"

מתי להשתמש

- ✅ כן — אחרי שיחידת עבודה שלמה ועובדת

- ✅ כן — לפני מעבר לפיצ'ר אחר

- ✅ כן — לפני ניסוי שעלול לשבור דברים

- ❌ לא — אחרי כל שורת קוד

- ❌ לא — כשיש קוד שבור שלא עובד

- ❌ לא — כשיש console.log / debug code שנשאר

שגיאות נפוצות

שגיאה: nothing to commit, working tree clean
סיבה: אין שינויים staged
פתרון: הרץ git add . לפני commit

שגיאה: Please tell me who you are
סיבה: Git לא מוגדר עם שם ואימייל
פתרון: 
  git config --global user.name "השם שלך"
  git config --global user.email "email@example.com"

קשור ל

git add — הכנת קבצים לפני commit

git push — שליחת commits לשרת

git log — צפייה בהיסטוריה

git stash — שמירה זמנית ללא commit

הערת גרסה

פורמט Conventional Commits (feat:, fix:) הוא convention — לא חובה טכנית. מומלץ מאוד לעבודת צוות ו-changelogs אוטומטיים.