Git Diff
עודכן לאחרונה
git diff מציג את השינויים המדויקים, שורה אחר שורה, בין שני מצבים של המאגר. בלי ארגומנטים הוא מציג מה שיניתם אבל עדיין לא הכנתם. הוסיפו --staged כדי לראות מה מוכן, ציינו שני קומיטים או ענפים כדי להשוות ביניהם, או ציינו קובץ כדי לצמצם את התוצאה.
נסו את הפקודות האלה בעורך הטרמינל אונליין: shell אמיתי בדפדפן, בלי להתקין כלום.
תחביר
| פקודה | מה היא עושה |
|---|---|
git diff | שינויים שלא הוכנו מול ה-index |
git diff --staged | שינויים מוכנים מול הקומיט האחרון |
git diff HEAD | כל השינויים מאז הקומיט האחרון |
git diff main feature | ההבדל בין שני ענפים |
git diff <hash1> <hash2> | ההבדל בין שני קומיטים |
git diff -- file.txt | שינויים בקובץ יחיד |
מקרים נפוצים
| מטרה | פקודה |
|---|---|
| לראות מה עומד להיכנס לקומיט | git diff --staged |
| לראות עבודה שלא נשמרה בקומיט | git diff |
| להשוות את הענף שלכם ל-main | git diff main |
| רק שמות הקבצים שהשתנו | git diff --name-only |
שאלות נפוצות על git diff
מה git diff מציג כברירת מחדל?
בלי ארגומנטים,
git diff מציג שינויים בעץ העבודה שעדיין לא הוכנו: מה שערכתם מאז ה-git add האחרון. כדי לראות מה כבר הכנתם (וייכנס לקומיט הבא), השתמשו ב-git diff --staged; כדי לראות את הכל מאז הקומיט האחרון, השתמשו ב-git diff HEAD.מה ההבדל בין git diff לבין git diff --staged?
git diff משווה את עץ העבודה לאזור ההכנה (שינויים שלא הוכנו). git diff --staged (וגם --cached) משווה את אזור ההכנה לקומיט האחרון (שינויים מוכנים). יחד הם מציגים את שני החצאים של העבודה שעדיין לא נשמרה בקומיט.איך משווים שני ענפים או שני קומיטים?
ציינו אותם:
git diff main feature מציג מה שונה בין שני הענפים, ו-git diff <hash1> <hash2> משווה שני קומיטים. הוסיפו -- <file> בסוף כדי להגביל את ההשוואה לקובץ אחד.איך רואים רק אילו קבצים השתנו, בלי ה-diff המלא?
השתמשו ב-
git diff --name-only לשמות הקבצים בלבד, או ב-git diff --stat לסיכום שמציג כל קובץ וכמה שורות השתנו בו. אלה שימושיים לסקירה מהירה לפני קריאת ה-diff המלא שורה אחר שורה.אפשר לתרגל את זה אונליין?
כן. פתחו את עורך הטרמינל אונליין כדי להריץ
git diff ב-shell אמיתי בדפדפן, בלי להתקין כלום. גם קורס ה-Git האינטראקטיבי והחינמי של Coddy מלמד בדיקת שינויים צעד אחר צעד.