Menu
Coddy logo textTech

Git Stash

עודכן לאחרונה

git stash שומר בצד את השינויים שלא נשמרו בקומיט ומחזיר את עץ העבודה למצב נקי, כך שאפשר לעבור ענף או להריץ pull בלי ליצור קומיט לעבודה חצי גמורה. השינויים נכנסים למחסנית שאפשר להחיל ממנה שוב מאוחר יותר עם git stash pop (החלה והסרה) או git stash apply (החלה ושמירה).

נסו את הפקודות האלה בעורך הטרמינל אונליין: shell אמיתי בדפדפן, בלי להתקין כלום.

git stash מניח בצד במחסנית את השינויים שעוד לא נכנסו לקומיט ומנקה את עץ העבודה; pop מחזיר אותם בהמשך.

תחביר

פקודהמה היא עושה
git stashשמירה בצד של שינויים בקבצים במעקב וניקוי עץ העבודה
git stash -uשמירה בצד גם של קבצים שלא במעקב
git stash push -m "msg"stash עם הודעה תיאורית
git stash push <file>stash לקובץ מסוים בלבד
git stash listהצגת כל ה-stashes
git stash popהחלה מחדש של ה-stash האחרון והסרתו
git stash applyהחלה מחדש של ה-stash האחרון ושמירתו
git stash dropמחיקת ה-stash האחרון
git stash clearמחיקת כל ה-stashes

pop מול apply

התנהגותgit stash popgit stash apply
מחיל מחדש את השינוייםכןכן
מסיר את ה-stash אחר כךכןלא
מתאים לשימוש חוזר ב-stashלאכן

שאלות נפוצות על git stash

מה git stash עושה?
הוא שומר את השינויים שלא נשמרו בקומיט במחסנית ומאפס את עץ העבודה לקומיט האחרון, כך שמקבלים דף נקי. השינויים לא הולכים לאיבוד: הם שמורים בצד ואפשר להחיל אותם מחדש מאוחר יותר עם git stash pop או git stash apply. זה שימושי כשצריך לעבור ענף אבל עוד לא מוכנים ליצור קומיט.
מה ההבדל בין git stash pop לבין git stash apply?
שניהם מחילים מחדש את ה-stash האחרון על עץ העבודה. git stash pop גם מסיר את ה-stash מהמחסנית אחר כך, ואילו git stash apply משאיר אותו במחסנית כדי שתוכלו להחיל אותו שוב במקום אחר. השתמשו ב-pop לשחזור חד פעמי, וב-apply כשרוצים להשתמש ב-stash שוב.
האם git stash כולל קבצים שלא במעקב?
לא כברירת מחדל: git stash פשוט שומר בצד רק קבצים במעקב (ששונו). הוסיפו -u (git stash -u) כדי לכלול קבצים שלא במעקב, או -a כדי לכלול גם קבצים מוחרגים. בלי הדגלים האלה, קבצים חדשים שלא הרצתם עליהם git add נשארים בעץ העבודה.
איך מחילים stash מסוים?
הריצו git stash list כדי לראות אותם ממוספרים כמו stash@{0}, stash@{1}, ואז git stash apply stash@{1} (או pop) כדי להחיל מחדש stash מסוים. לצד כל stash מוצגים גם הענף וההודעה שאיתם הוא נוצר, כך שאפשר להבדיל ביניהם.
אפשר לתרגל את זה אונליין?
כן. פתחו את עורך הטרמינל אונליין כדי להריץ git stash ב-shell אמיתי בדפדפן, בלי להתקין כלום. גם קורס ה-Git האינטראקטיבי והחינמי של Coddy מלמד ניהול עבודה בתהליך צעד אחר צעד.
איור של שפות התכנות ב-Coddy

ללמוד Git עם Coddy

להתחיל