אינטרנט ישראל
  • ראשי
  • אודות רן בר-זיק ואינטרנט ישראל
  • ערוץ טלגרם
  • מסטודון
  • התחברו אלי בטוויטר
  • התחברו אלי בלינקדאין
  • ספר ג'אווהסקריפט
  • ראשי
  • אודות רן בר-זיק ואינטרנט ישראל
  • ערוץ טלגרם
  • מסטודון
  • התחברו אלי בטוויטר
  • התחברו אלי בלינקדאין
  • ספר ג'אווהסקריפט
ראשי » מדריכים » Git » Git stash

Git stash

רן בר-זיק פברואר 28, 2016 10:06 am 3 תגובות

שמירה זמנית של שינויים בענף המקומי ללא צורך ב-commit.

המאמר הקודם במדריך ה-gitgit alias
המאמר הבא במדריך ה-gitעבודה עם SSH Keys
כדאי תמיד להשאר מעודכנים! אם יש לכם טלגרם, בדקו את ערוץ הטלגרם של האתר שבו אני מעדכן על פוסטים חדשים 🙂 אם אתם רוצים ללמוד תכנות באופן מקיף ומסודר, הצטרפו לאלפי הלומדים בפרויקט "ללמוד ג'אווהסקריפט בעברית" שמלמד לתכנת בג'אווהסקריפט, ב-Node.js ובריאקט וגם מלמד על תרומה לקוד פתוח. גם ספרים דיגיטליים וגם ספרים מודפסים. בשיתוף הקריה האקדמית אונו ובתמיכת חברות מובילות כגון Wix, Outbrain, Elementor, Iron Source, Chegg, Really Good ועוד.

אפשר ללמוד גיט יותר טוב

ספר מקיף על גיט, בעברית, שנכתב על ידי רן בר-זיק וכולל תרגילים רבים ומידע מקיף - כולל הסבר על תרומה לפרויקטים של קוד פתוח ושילוב של התרומה בקורות החיים ניתן להורדה ממש פה.
כדאי תמיד להשאר מעודכנים! אם יש לכם טלגרם, בדקו את ערוץ הטלגרם של האתר שבו אני מעדכן על פוסטים חדשים 🙂 אם אתם רוצים ללמוד תכנות באופן מקיף ומסודר, הצטרפו לאלפי הלומדים בפרויקט "ללמוד ג'אווהסקריפט בעברית" שמלמד לתכנת בג'אווהסקריפט, ב-Node.js ובריאקט וגם מלמד על תרומה לקוד פתוח. גם ספרים דיגיטליים וגם ספרים מודפסים. בשיתוף הקריה האקדמית אונו ובתמיכת חברות מובילות כגון Wix, Outbrain, Elementor, Iron Source, Chegg, Really Good ועוד.

במאמר האחרון על Git למדנו על git alias שמאפשר לנו ליצור קיצורי דרך שימושיים. במאמר הזה אני אסביר על משהו ממש חמוד בגיט שמאפשר לנו אחסון מקומי של העבודה שלנו. git stash הוא אחסון מקומי

זה קורה בעיקר בצוותים או בחברות גדולות אבל לא רק – אני עובד לי בנחת על ה-branch שלי ואז לפתע פתאום נוחתת עלי משימה שבה אני חייב לעבור ל-branch אחר לפרק זמן קצר. יש לי מלא שינויים שעדיין לא עשיתי להם commit. מה אני יכול לעשות? אני יכול לעשות commit, אבל מה אם אני עדיין לא רוצה לעשות את זה כי עדיין זה לא מוכן ל-commit? מה אם יש לי תהליכים שקשרתי אותם ל-git? למשל – כשאני עושה git commit, אני מריץ jshint. אם הקוד שלי מלא שגיאות, אני בבעיה כי אני לא יכול לעשות commit.

הפתרון הוא פשוט – לעשות stash. הפעולה הזו היא שמירה זמנית של הקבצים שלנו ב-branch הנוכחי. אחרי הפעולה הזו אפשר בקלות לעבור ל-branch אחר, לשנות לתקן ואז לחזור ל-branch שלנו ולהחזיר את כל השינויים שעשינו.

נשמע מסובך? ממש לא. נניח שיש לי שינויים שעדיין לא עשיתי להם commit, הקלדת git stash תציג לי את הטקסט הזה:

Saved working directory and index state WIP on master: d2f6507 First commit
HEAD is now at d2f6507 First commit

מה זה אומר? גיט שומר את השינויים ומחזיר את הקבצים המקומיים לגרסה הראשונית של ה-branch. עכשיו אני יכול לעבור ל-branch אחר בלי בעיה. כשאני רוצה לחזור? מאוד קל.

$git stash list
[email protected]{0}: WIP on master: d2f6507 First commit

כאן תהיה רשימה של כל ה-stash שלי. אם אני רוצה לחזור לאחרון, אין קל מזה, פשוט לכתוב git stash apply

$git stash apply
On branch master
Changes not staged for commit:
  (use "git add ..." to update what will be committed)
  (use "git checkout -- ..." to discard changes in working director

        modified:   index.html

no changes added to commit (use "git add" and/or "git commit -a")

אני חוזר לאחרון והכל מעולה. אם אני רוצה לחזור ל-stash ספציפי, אני רק צריך לציין את השם שלו כפי שהוא מופיע ברשימה. למשל:

git stash apply [email protected]{0}

אני יכול ליצור stash עם שם קצת יותר נורמלי מהשם האוטומטי שהגיט נותן לנו

C:\Users\barzik\test\examplegit>git stash save "My stash"
Saved working directory and index state On master: My stash
HEAD is now at d2f6507 First commit

שימו לב שהרשימה של ה-stash לא נמחקת גם אחרי שעשינו apply. על מנת למחוק את ה-stash אנחנו צריכים לעשות git stash drop

git stash drop [email protected]{0}

אם אתם רוצים לדלג על השלב של המחיקה ופשוט למחוק אוטומטית מיד אחרי ה-apply, השתמשו בפקודה pop – זה יעשה apply וגם drop אוטומטית.

אם (כמוני) הייתם חמורים ושכחתם לעשות drop והצטבר לכם אוסף נאה של stash, אפשר בקלות להכניס את הפקודה הבאה על מנת לנקות את כל רשימת ה-stash.

git stash clear

זהו, עד כאן בנוגע לפיצ'ר קטן אבל אולטרא שימושי בגיט.

כדאי תמיד להשאר מעודכנים! אם יש לכם טלגרם, בדקו את ערוץ הטלגרם של האתר שבו אני מעדכן על פוסטים חדשים 🙂 אם אתם רוצים ללמוד תכנות באופן מקיף ומסודר, הצטרפו לאלפי הלומדים בפרויקט "ללמוד ג'אווהסקריפט בעברית" שמלמד לתכנת בג'אווהסקריפט, ב-Node.js ובריאקט וגם מלמד על תרומה לקוד פתוח. גם ספרים דיגיטליים וגם ספרים מודפסים. בשיתוף הקריה האקדמית אונו ובתמיכת חברות מובילות כגון Wix, Outbrain, Elementor, Iron Source, Chegg, Really Good ועוד.
מדריך הגיט
git

3 תגובות

  1. משתמש אנונימי (לא מזוהה) הגב מרץ 6, 2016 בשעה 3:39 pm

    תודה

  2. רפי הגב מרץ 13, 2016 בשעה 10:12 am

    חשוב לציין גם את git stash pop
    שמחזירה את הקוד ומעיפה מהstash
    ושאפשר לעשות גם git show [email protected]{0} לראות את הקוד
    וgit stash list לראות את כל הסטאשים

    • רן בר-זיק הגב מרץ 13, 2016 בשעה 11:32 am

      תודה רבה על התוספת החשובה! 🙂

השארת תגובה

ביטול

ללמוד ג'אווהסקריפט בעברית

ללמוד לתכנת ג'אווהסקריפט בעברית שגייס יותר משלוש מאות אלף שקל ולמעלה מ-2000 תומכים - בואו ללמוד עכשיו איך לתכנת.

רשימת הנושאים
  • מדריכים
    • ריאקט
    • טייפסקריפט
    • ECMAScript 6
    • ES20XX
    • Node.js
    • Express
    • רספברי פיי
    • Babel
    • docker
    • MongoDB
    • Git
    • לימוד MySQL
    • SASS
    • jQuery
    • CSS3
    • HTML 5
    • SVN
    • LESS
  • פיתוח אינטרנט
    • פתרונות ומאמרים על פיתוח אינטרנט
    • jQuery Scripts
    • jQuery למתקדמים
    • יסודות בתכנות
    • נגישות אינטרנט
  • חדשות אינטרנט
  • מידע כללי על אינטרנט
    • רשת האינטרנט
    • בניית אתרי אינטרנט
  • rss logo

    לכל המאמרים

    לכל המאמרים שפורסמו באינטרנט ישראל משנת 2008 ועד עכשיו.
  • rss logo

    RSS Feed

    משתמשים בקורא RSS? אם כן, עקבו אחרי אינטרנט ישראל באמצעות פיד ה-RSS!
    מה זה RSS?
  • Twitter logo

    עקבו אחרי בטוויטר

    בחשבון הטוויטר שלי אני מפרסם עדכונים מהירים על חדשות בתחום התכנות והיזמות, התרעות על מצבי חירום ורכילות בוערת על תחום הווב.
    מה זה טוויטר?
  • facebook like image

    ערוץ הטלגרם של אינטרנט ישראל

    בערוץ הטלגרם של אינטרנט ישראל אני מפרסם את הפוסטים של באתר וכן עדכונים טכנולוגיים נוספים.
    מה זה טלגרם?
  • github logo

    הפרויקטים שלי בגיטהאב

    הפרויקטים שאני כותב ושוחררו לציבור ברישיון קוד פתוח נמצאים ברובם בגיטהאב.
חיפוש

כל הזכויות שמורות לרן בר-זיק ולאינטרנט ישראל | מדיניות הפרטיות של אתר אינטרנט ישראל | אתר אינטרנט ישראל נגיש לפי תקן WCAG 2.0 AA | הצהרת הנגישות של האתר | אבטחת מידע ודיווח על בעיית אבטחת מידע

גלילה לראש העמוד