לפעמים אתה רוצה להחליף סניפים, אבל אתה עובד על חלק לא שלם מהפרויקט הנוכחי שלך. אתה לא רוצה להתחייב מעבודה גמורה למחצה. Git stashing מאפשר לך לעשות זאת. ה הפקודה git stash מאפשר לך להחליף סניפים מבלי להתחייב לסניף הנוכחי.
האיור שלהלן מדגים את המאפיינים והתפקיד של אחסון לגבי מאגר וספריית עבודה.
בדרך כלל, המשמעות של המחסן היא ' אחסן משהו בבטחה במקום נסתר .' התחושה ב-Git זהה גם ל-stash; Git שומר באופן זמני את הנתונים שלך בבטחה מבלי להתחייב.
אחסון לוקח את המצב המבולגן של ספריית העבודה שלך, ושומר אותו באופן זמני לשימוש נוסף. אפשרויות רבות זמינות עם git stash. להלן כמה אפשרויות שימושיות:
עבודת מחסנים
בואו נבין את זה עם תרחיש בזמן אמת. ביצעתי שינויים בפרויקט GitExample2 שלי בשני קבצים משני ענפים נפרדים. אני במצב מבולגן, ועדיין לא ערכתי כל קובץ. אז אני רוצה לשמור אותו באופן זמני לשימוש עתידי. אנחנו יכולים לאחסן אותו כדי לשמור אותו כסטטוס הנוכחי שלו. כדי לאחסן, בואו נסתכל על המצב הנוכחי של המאגר. כדי לבדוק את המצב הנוכחי של המאגר, הפעל את פקודת git status. הפקודה git status משמשת כ:
ריפוד np
תחביר:
$ git status
תְפוּקָה:
מהפלט לעיל, אתה יכול לראות את המצב שיש שני קבצים שאינם במעקב design.css ו newfile.txt זמין במאגר. כדי לשמור אותו באופן זמני, אנו יכולים להשתמש בפקודה git stash. הפקודה git stash משמשת כ:
תחביר:
$ git stash
תְפוּקָה:
בפלט הנתון, העבודה נשמרת עם הפקודה git stash. אנחנו יכולים לבדוק את מצב המאגר.
כפי שאתה יכול לראות, העבודה שלי פשוט מוחבאת במיקומה הנוכחי. כעת, הספרייה מנוקה. בשלב זה ניתן לעבור בין ענפים ולעבוד עליהם.
Git Stash Save (שומר סטאשים עם ההודעה):
ב-Git, ניתן לאחסן את השינויים בהודעה. כדי לאחסן שינוי עם הודעה, הפעל את הפקודה הבאה:
תחביר:
$ git stash save ''
תְפוּקָה:
המחסן לעיל יישמר עם הודעה
Git Stash רשימת (בדוק את המאוחסנים המאוחסנים)
כדי לבדוק את המאוחסנים המאוחסנים, הפעל את הפקודה הבאה:
תחביר:
$ git stash list
תְפוּקָה:
אופרטור טרירי java
במקרה הנ'ל, הכנתי מחסן אחד, שמוצג כ' stash@{0}: WIP בבדיקה: קובץ CSS 0a1a475 '.
אם יש לנו יותר ממאגר אחד, זה יציג את כל המאגרים בהתאמה עם מזהה מחסן שונה. שקול את הפלט שלהלן:
זה יציג את כל המאגרים עם אינדקס כ stash@{0}: stash@{1}: וכולי.
Git Stash החל
אתה יכול להחיל מחדש את השינויים שאחסתם זה עתה באמצעות הפקודה git stash. כדי להחיל את ה-commit, השתמש בפקודה git stash, ולאחר מכן באפשרות היישום. הוא משמש כ:
תחביר:
$ git stash apply
תְפוּקָה:
הפלט שלמעלה משחזר את המחסן האחרון. כעת, אם תבדוק את מצב המאגר, הוא יציג את השינויים שנעשו בקובץ. שקול את הדברים הבאים תְפוּקָה:
מהפלט לעיל, אתה יכול לראות שהמאגר שוחזר למצבו הקודם לפני הסטש. זה מציג פלט בתור ' שינויים לא מבוימים עבור התחייבות .'
במקרה של יותר מסטש אחד, אתה יכול להשתמש בפקודה 'git stash application' ואחריה ב-stash index id כדי להחיל את ה-commit המסוים. הוא משמש כ:
תחביר:
$ git stash apply
שקול את הפלט שלהלן:
תְפוּקָה:
אם לא נציין מחסום, Git לוקח את המאחסן האחרון ומנסה להחיל אותו.
Git Stash שינויים
אנחנו יכולים לעקוב אחר המאגרים והשינויים שלהם. כדי לראות את השינויים בקובץ לפני ה-stash ואחרי פעולת ה-stash, הפעל את הפקודה הבאה:
תחביר:
$ git stash show
הפקודה לעיל תציג את הקובץ ששמור והשינויים שבוצעו בו. שקול את הפלט שלהלן:
תְפוּקָה:
הפלט שלמעלה ממחיש שיש שני קבצים שמוגנים, ובוצעו עליהם שתי הוספות.
אנחנו יכולים לעקוב בדיוק אחר השינויים שנעשו בקובץ. כדי להציג את התוכן שהשתנה של הקובץ, בצע את הפקודה הבאה:
תחביר:
$ git stash show -p
כאן, -p מייצג את המחסן החלקי. הפקודה הנתונה תציג את הקבצים והתוכן הערוכים, שקול את הפלט שלהלן:
תְפוּקָה:
הפלט לעיל מציג את שם הקובץ עם תוכן שונה. זה פועל כמו פקודת git diff. ה git diff הפקודה תציג גם את הפלט המדויק.
Git Stash Pop (החלה מחדש של שינויים מאוחסנים)
Git מאפשר למשתמש להחיל מחדש את המחויבויות הקודמות באמצעות פקודת git stash pop. אפשרות הפצה מסירה את השינויים מהמחסן ומחילה אותם על קובץ העבודה שלך.
הפקודה git stash pop דומה למדי ל-git stash app. ההבדל העיקרי בין שתי הפקודות הללו הוא פקודת stash pop שמוחקת את ה-stash מהמחסנית לאחר החלתו.
תחביר:
$ git stash pop
הפקודה לעיל תחיל מחדש את ההתחייבויות הקודמות על המאגר. שקול את הפלט שלהלן.
תְפוּקָה:
Git Stash Drop (הסרה)
ה git stash drop הפקודה משמשת למחיקת מחסנית מהתור. בדרך כלל, זה מוחק את הסטש האחרון. יש לנקוט משנה זהירות לפני השימוש בפקודה להורדת מחסן, מכיוון שקשה לבטל אותה אם היא מיושמת פעם אחת.
הדרך היחידה להחזיר אותו היא אם לא תסגור את הטרמינל לאחר מחיקת ה-stash. פקודת הסטאש תשמש כ:
הגדרת נתיב פיתון
תחביר:
$ git stash drop
תְפוּקָה:
בפלט לעיל, המאחסן האחרון (stash@{0}) נשמט משלושה מחסנים. הפקודה רשימת מחסניות מפרטת את כל המאגרים הזמינים בתור.
אנחנו יכולים גם למחוק מחסן מסוים מהתור. כדי למחוק מחסנית מסוימת מהמחסנים הזמינים, העבר את הפקודה 'מזהה מחסן' בפקודה שחרור מחסן. זה יעובד כ:
תחביר:
$ git stash drop
נניח שיש לי שני מחסנים זמינים בתור, ואני לא רוצה לשחרר את המחסן האחרון שלי, אבל אני רוצה למחוק את הישן יותר. לאחר מכן, הוא יופעל כך:
$ git stash drop stash@{1}
שקול את הפלט שלהלן:
xor ב-java
בפלט לעיל, ה-commit stash@{1} נמחק מהתור.
Git Stash Clear
ה git stash clear הפקודה מאפשרת למחוק את כל המאגרים הזמינים בבת אחת. כדי למחוק את כל המאגרים הזמינים, הפעל את הפקודה הבאה:
תחביר:
$ git stash clear
זה ימחק את כל המאגרים הקיימים במאגר.
תְפוּקָה:
כל המאחסנים נמחקים בפלט לעיל. הפקודה git stash list ריקה מכיוון שאין מחסנים זמינים במאגר.
סניף גיט סטאש
אם החבאת עבודה על ענף מסוים ותמשיך לעבוד על הענף הזה. לאחר מכן, זה עלול ליצור התנגשות במהלך המיזוג. אז זה טוב לאחסן עבודה על ענף נפרד.
הפקודה git stash branch מאפשרת למשתמש לאחסן עבודה על ענף נפרד כדי למנוע התנגשויות. התחביר עבור ענף זה הוא כדלקמן:
תחביר:
$ git stash branch
הפקודה שלעיל תיצור ענף חדש ותעביר את העבודה המוסתרת עליו. שקול את הפלט שלהלן:
תְפוּקָה:
בפלט הנ'ל, העבודה המאוחסנת מועברת לבדיקת ענף חדש שנוצרה. זה ימנע את התנגשות המיזוג בסניף הראשי.