איך אתה מעוך את כל ההתחייבויות באחת?

How Do You Squash All Commits One



ב- Git Squash היא טכניקה המאפשרת לבצע סדרה של שינויים בהתחייבויות ולאחר מכן לאחד אותה להתחייבות אחת. הבה נסביר בעזרת דוגמה, נניח שיש לך מספר התחייבות וכאשר אתה מחיל עליהן git squash, אתה יכול למעוך או לדחוס את כל 'n' התחייבויות להתחייבות אחת בלבד. סקווש Git משמש לשינוי מספר התחייבויות גדולות למחויבות משמעותיות אחת קטנה. אז אתה יכול להפוך את יומן git לבהיר יותר. ניתן גם למזג ענפים באמצעות טכניקת הסחיטה. זוהי שיטה מומלצת תמיד למעוך התחייבות ולהפעיל אותה מחדש עם סניף האב או ההורה.

מאמר זה יפרט כיצד ניתן למעוך את כל ההתחייבויות בהתחייבות אחת ב- git. יישמנו את כל השלבים בהפצת CentOS 8 Linux.







סקווש מתחייב לאחד עם git

אתה יכול ליישם את git squash בשלבים הבאים:



שלב 1: בחר התחל להתחייב

כדי לקבוע כמה התחייבויות אתה צריך למעוך, הפקודה הבאה תפעיל במסוף:



יומן $ git





כעת, תפעיל את ה- git כדי להתחיל הפעלה מחדש אינטראקטיבית באמצעות הפקודה הבאה:

$ git rebase -i HEAD ~ N

ב- HEAD ~ N לעיל, ה- N הוא המספר הכולל של התחייבויות שקבעת מהפקודה 'יומן git'. נניח, מספר ההתחייבויות הוא 4. כעת, הפקודה תשתנה לצורה הבאה:

$ git rebase -i HEAD ~ 4

רשימת ההתחייבות הבאה תוצג במסוף שבו כל מתחייב בוהה במילה pick.

שלב 2: שנה את Pick לסקווש

כאן, נסמן את כל ההתחייבויות כמעוותות, נשאיר את ההתחייבות הראשונה שתשמש כנקודת מוצא. לכן, שנה את עורך vim למצב הוספה על ידי לחיצה על 'i' ושנה את כל ההתחייבות לבחירה למעט הסקווש למעט ההתחייבות הראשונה. כעת, לחץ על 'Esc' כדי לשנות את מצב ההכנסה ולחץ על ': wq!' כדי לשמור את כל השינויים ולצאת. אם אתה משתמש בעורך הטקסט הפשוט, תוכל פשוט לשנות את המילה 'בחר' ל'סקווש 'ולשמור שינויים. לאחר מכן, תראה את החלון הבא במסוף:

כאשר תעזוב מעטפת זו, תראה את ההודעות הבאות בחלון הטרמינל:

אם תמעוך הכל אז, תראה את כל ההתחייבויות המשולבות לכדי הצהרת התחייבות אחת שתוצג במסוף:

סיכום

על ידי שימוש ב- squash git, אתה יכול בקלות למעוך או לדחוס התחייבויות רבות להתחייבות אחת קטנה יותר. אתה יכול להשתמש בטכניקה זו כדי לתקן שגיאות כתיב בתיעוד. יישמנו מאמר git squash במאמר זה. ראינו גם כיצד אנו יכולים לנקות את ההיסטוריה באמצעות פקודות rebase ו- squash.