אחד המאפיינים החזקים ביותר של גיט הוא הענפים הקלים שלה. הם מאפשרים לך לעבוד על שלבי פיתוח מקבילים ביעילות. מפתח עשוי אפילו ליצור סניפים בודדים עבור באגים נפרדים. בזמן ובמרחב, הסניפים כמעט ללא עלות.
תהליכי עבודה רבים של git עוסקים בסניפים ארוכי טווח וארעיים כאחד. לכן, לעיתים קרובות יש צורך למחוק סניפים במהלך הפיתוח. יש מדי פעם צורך למחוק סניפים משותפים, משרת מרוחק, וכן מסניפים מקומיים.
מדוע למחוק סניף?
ראשית, אם אתה עדיין להתמודד עם git, יש סיכוי די טוב שתיצור סניף ואז תחליט שאתה לא צריך. או אולי תתנסו בענפים ותרצו לנקות אחרי עצמכם. זה בסדר מכיוון שהסתעפות ב- git היא פעולה קלה. זה מהיר מאוד ומשתמש בשטח דיסק ביעילות.
במאמר זה נבחן מה המשמעות של הסתעפות הקוד שלך, כיצד לעשות זאת, ודרכים לנהל עדכונים לענף ה- git "הראשי".
כתוצאה מכך, תהליכי עבודה רבים של פיתוח git מעודדים הסתעפות, אפילו למשימות קטנות או קצרות מאוד. לדוגמא, אסטרטגיה משותפת היא ליצור סניף לתיקון באגים בודד. זה נכון גם אם זה כולל רק מחבר יחיד שעושה שינוי בשורה אחת בקובץ יחיד.
מסיבות אלה, יצירה ומחיקה של סניפים הם פעולות שצריך להבין היטב. אתה עלול למצוא את עצמך לעתים קרובות מוחק סניפים במהלך זרימת עבודה אופיינית לפיתוח.
מאגר לדוגמא עם ענפים
הדוגמאות הבאות מתייחס למאגר לדוגמה עם המבנה הבא:
$ git branch -vv
התחל 1 dev 1ae41e8 [origin / dev]
2 * main 1ae41e8 [origin / main] התחייבות ראשונה
שימו לב שלכל סניף מקומי יש סניף מקביל במעלה הזרם מהשלט הרחוק: מָקוֹר.
מחיקת ענף באמצעות שורת הפקודה
תחביר הפקודה הבסיסי למחיקת ענף הוא:
ענף git (-d | -D) [-r] ...
הצורה הפשוטה ביותר של הפקודה מוחקת סניף מקומי, בתנאי שכל השינויים בו מוזגו:
$ git branch -d dev
אינך יכול למחוק את הענף הפעיל כעת; אם תנסה לעשות זאת, תקבל הודעה כזו:
שגיאה: לא ניתן למחוק את הענף 'ראשי' שנבדק ב '/ tmp / sandbox'
כאשר הדברים מסתדרים כשורה, תופיע הודעת אישור:
מחיקת הסניף נמחקה (היה 1ae41e8).
אם תמחק סניף שקיים רק באופן מקומי, עם שינויים שלא התמזגו, תאבד שינויים אלה. לכן, git יסרב למחוק סניף במצב כזה, כברירת מחדל:
שגיאה: הענף 'dev' אינו מוזג לחלוטין.
אם אתה בטוח שאתה רוצה למחוק אותו, הפעל את 'git branch -D dev'.
כפי שמודעת הודעת השגיאה, באפשרותך לכפות על מחיקה באמצעות ה- -ד דֶגֶל. עם זאת, git יאפשר לך למחוק סניף מקומי שלא מזג אם הוא קיים מרחוק:
אזהרה: מחיקת 'dev' ענף שמוזג ל
'refs / remotes / origin / dev', אך עדיין לא מוזג ל- HEAD.
מחיקת הסניף נמחקה (היה 9a6d20b).
מחיקת סניף מרוחק שונה לגמרי. תשתמש ב- דחיפת גיט פקודה יחד עם -ד דגל למחיקה. לאחר מכן, ספק את שם השלט (לעתים קרובות מָקוֹר) ושם הסניף:
$ git push -d dev origin
אל github.com: bobbykjack / sandbox.git
- [נמחק] dev
מחיקת סניפים מקומיים ומרוחקים באמצעות GitHub Desktop
שלא כמו תוכנית git בשורת הפקודה, אפליקציית שולחן העבודה של GitHub רק יאפשר לך למחוק את הענף הפעיל. אתה יכול לבצע פעולה זו באמצעות ענף בתפריט, על ידי בחירת לִמְחוֹק אפשרות ואישור:
שולחן העבודה של GitHub לא יאפשר לך למחוק את ענף ברירת המחדל - למשל. ראשי - למרות ש git עצמו תומך בכך. אם ענף ברירת המחדל הוא הפעיל כעת, האפליקציה תשבית את פעולת התפריט.
אם הסניף מייצג גם ענף מרוחק, GitHub Desktop נותן אפשרות למחוק אותו גם מהשלט הרחוק:
מחיקת סניפים באמצעות GitKraken
גיטקרקן מציג את הסניפים המקומיים והמרוחקים של המאגר בסרגל הצד השמאלי. עליך למחוק כל אחד מהם לְחוּד.
העבר את העכבר מעל שם הענף המתאים ולחץ על ענף תפריט פעולות שנראה כמו שלוש נקודות אנכיות. מהתפריט בחר לִמְחוֹק :
תראה הודעת אישור המודיעה לך שמדובר בפעולה הרסנית. אתה יכול לאשר שאתה רוצה להמשיך עם ה- לִמְחוֹק לַחְצָן:
המשקף את התנהגות ברירת המחדל של תוכנית שורת הפקודה git, תחילה עליך לעבור לענף שאינו זה שאתה מוחק. אחרת תופיע הודעת שגיאה:
מחיקת סניפים מקומיים ומרוחקים באמצעות מגדל
מוחק סניף עם מִגדָל דומה מאוד למחיקת סניף עם GitKraken. סניפים מקומיים ומרוחקים מוצגים בחלונית בצד שמאל. לחץ לחיצה ימנית על כל ענף ובחר באפשרות מחק מתפריט ההקשר:
הבדל מרכזי אחד הוא שניתן למחוק סניף מרוחק יחד עם הסניף המקומי שלו במהלך האישור:
מחיקת סניף ב- GitHub
GitHub פועל רק כמקור מרוחק, ולכן הענפים שם הם מרחוק כברירת מחדל. אם תמחק סניף באמצעות אתר GitHub, יהיה עליך למחוק את הסניף המקומי המתאים באמצעות אחת מהשיטות האחרות כאן.
כמו באפליקציית GitHub Desktop, אתר GitHub לא יאפשר לך למחוק את ענף ברירת המחדל. האפשרות פשוט לא מופיעה. מחיקת סניף היא אמנם פשוטה. מהמאגר קוד לחץ על הדף ענפים קישור, אתר את הענף למחיקה ולחץ על מחק את הסניף הזה סמל, שנראה כמו פח אשפה:
שים לב שאין בדיקות לשינויים שלא התמזגו, לכן ב- GitHub הסניף פשוט יימחק מייד. עם זאת, מכיוון שהוא תמיד ייצג ענף מרוחק, זו צריכה להיות ההתנהגות שאתה מצפה לה.
שים לב שלאחר המחיקה תראה לחצן לשחזר הענף. עם זאת, זו פשוט תכונה שימושית לביטול, במקרה ולוחצים על סמל המחיקה בטעות. אל תסמוך עליו, כי ברגע שאתה מרענן או מנווט הרחק מהדף, תאבד את האפשרות!
מחיקת סניפים מקומיים ומרוחקים ב- Bitbucket
Bitbucket, כמו GitHub, לא יאפשר לך למחוק את ענף ברירת המחדל. Bitbucket מכנה זאת סניף ראשי ב הגדרות מאגר. אתה יכול למחוק כל ענף אחר המופיע ב ענפים הכרטיסייה, דרך המקביל שלה פעולות תַפרִיט:
תוכל גם למחוק יותר מסניף אחד בו זמנית אם אתה מבצע פעולת ניקוי גדולה:
מחיקת סניפים היא חלק מתהליך עבודה אופייני של Git
סניפי Git יכולים לסבך את זרימת העבודה שלך, במיוחד עם ענפים מקומיים, מרוחקים ומעקב. אך לפיתוח יומיומי פשוט, סביר להניח שתצור ותמחק סניפים מקומיים כל הזמן. זהו היבט ליבה של זרימת עבודה טיפוסית של git שכדאי להתרגל אליה.
במאמר זה נבחן מה המשמעות של הסתעפות הקוד שלך, כיצד לעשות זאת, ודרכים לנהל עדכונים לענף ה- git "הראשי".
- תִכנוּת
- GitHub
בובי הוא חובב טכנולוגיה שעבד כמפתח תוכנה במשך רוב שני העשורים. הוא נלהב ממשחקים, עובד כעורך ביקורות במגזין Switch Player, והוא שקוע בכל ההיבטים של פרסום מקוון ופיתוח אתרים.
הירשם לניוזלטר שלנו
הצטרף לניוזלטר שלנו לקבלת טיפים טכניים, ביקורות, ספרים אלקטרוניים בחינם ומבצעים בלעדיים!
צעד אחד נוסף !!!
אנא אשר את כתובת הדוא"ל שלך בדוא"ל ששלחנו לך זה עתה.