Git Stash
עודכן לאחרונה
git stash שומר בצד את השינויים שלא נשמרו בקומיט ומחזיר את עץ העבודה למצב נקי, כך שאפשר לעבור ענף או להריץ pull בלי ליצור קומיט לעבודה חצי גמורה. השינויים נכנסים למחסנית שאפשר להחיל ממנה שוב מאוחר יותר עם git stash pop (החלה והסרה) או git stash apply (החלה ושמירה).
נסו את הפקודות האלה בעורך הטרמינל אונליין: shell אמיתי בדפדפן, בלי להתקין כלום.
תחביר
| פקודה | מה היא עושה |
|---|---|
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 pop | git 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 מלמד ניהול עבודה בתהליך צעד אחר צעד.