ענפים וניתוחים

ענפים, רימוטים וסרגל הצד

סרגל צד אחד, ניתן לסידור מחדש ולחיפוש, מחזיק ענפים, רימוטים, תגיות, סטאשים, עצי עבודה ותת־מודולים. כל מקטע ניתן להסתרה או לסידור מחדש (הגדרות ← פריסה), ותיבת הסינון חלה על כולם. אילו מקטעים ותיקיות נשארים פתוחים או מכווצים נזכר לכל מאגר בנפרד, גם אחרי הפעלה מחדש.

סרגל הצד הוא ערימת חלוניות, לא רשימה ארוכה. מקטע פתוח לוקח את הגובה שהמכווצים משאירים — הם יושבים מתחת כשורות כותרת. פתחו כמה והם חולקים את הגובה שווה בשווה, כל אחד עם גלילה משלו. מקטע עם מאות תגיות גולל בתוך החלונית שלו ושאר הכותרות נשארות במקום, כך ששום דבר שרוצים ללחוץ עליו לא בורח מהמסך. פתחו יותר ממה שנכנס וכל החלוניות מתכווצות יחד עד הכותרת — סרגל הצד עצמו לעולם לא גולל.

רק מקומי מתחיל פתוח במאגר שעוד לא סידרתם; כל מקטע אחר מתחיל ככותרת. מקטע שמכיל יותר מ‑300 הפניות נפתח מכווץ בכל זאת. במאגר שנצברו בו אלפי ענפים מרוחקים שאיש לא מחק מעולם, אחרת כולם היו מופיעים על המסך בלי שביקשת; פתח אותו פעם אחת והבחירה תיזכר כמו כל בחירה אחרת.

סרגל הצד, עם ענפים מוצמדים המוחזקים למעלה

ענפים

יצירה, צ׳קאאוט, שינוי שם ומחיקה — מקומיים ומרוחקים. שורות הענפים מציגות:

ענפים עם / בשמותיהם מתקפלים אוטומטית לתיקיות ניתנות לכיווץ. קידומת עם ילד אחד נשארת תיקייה — release/1.2.3 הוא release עם 1.2.3 בפנים — כך שהוספת release/1.2.4 אחר כך לא מציירת מחדש את העץ. רצף תיקיות עם ילד אחד מתכווץ לכותרת אחת (dependabot/npm_and_yarn). כותרות תיקייה נושאות סימן תיקייה; ה-ref עצמו סימן ענף, מרוחק או תג.

לחיצה ימנית על כותרת תיקייה פועלת על כל הקבוצה: מחיקת כל הענפים תחת feature (4 ענפים) מסירה את כל מה שבפנים אחרי אישור אחד שמפרט בדיוק אילו ענפים נמחקים — הענף שעליו אתם נמצאים מוחרג. אותו תפריט קיים גם על תיקיות של ענפים מרוחקים, ומוחק מהרימוט במקום.

תפריט הענפים הנפתח בסרגל הכלים מציג ענפים מקומיים ומרוחקים. לחיצה ימנית על ענף בתפריט זה מאפשרת לשנות שם של ענף מקומי, להעתיק את שמו, לפתוח אותו בעץ עבודה (worktree) חדש, למזג אותו אל הענף הפעיל או למחוק אותו. ענפים מרוחקים אינם מציעים שינוי שם, ונמחקים מהשרת המרוחק לאחר אישור. Gitcito מסתיר את המיזוג כאשר ההפניה שנבחרה כבר כלולה בענף הפעיל, ומשבית יצירת עץ עבודה כאשר הענף כבר משוך.

פעולות על ענף מקומי בתפריט הנפתח של סרגל הכלים

פעולות על ענף מרוחק בתפריט הנפתח של סרגל הכלים

שורות נבחרות בבחירה מרובה כמו קבצים: לחיצה עם ⌘/Ctrl מחליפה מצב של שורה, לחיצה עם Shift בוחרת טווח, ו-Shift+↑/↓ מרחיבים את הבחירה מהשורה האחרונה שלחצתם עליה. לחיצה ימנית על הבחירה פותחת את תפריט הפעולות המרובות — מחיקת 4 ענפים — שמאשר עם הרשימה המלאה. אותן מחוות עובדות על ענפים מרוחקים, תגיות וסטאשים.

שמות ענפים מופרדי לוכסן מקופלים לעץ

שינוי שם של ענף

ענף שקראת לו fix לפני שלושה ימים הוא ענף שאיש לא יודע היום למקם. שנה את שמו מהמקום שבו הבחנת בבעיה:

היכן איך
סרגל הצד לחיצה ימנית על הענף ← שינוי שם…
רשימת הענפים בסרגל הכלים לחיצה ימנית על הענף ← שינוי שם…
גרף הקומיטים לחיצה ימנית על תג הענף שעל קומיט ← שינוי שם…
לוח הפקודות ⌘/Ctrl+K ← שינוי שם הענף (פועל על הענף הפעיל)

שינוי שם מקומי הוא git branch -m: מיידי וניתן לביטול עם ⌘Z — פעולת הביטול מחזירה את השם הקודם. שינוי שם הענף שאתה עומד עליו משאיר אותך עליו.

כשהענף עוקב אחרי ריפו מרוחק, התפריט מציע גם שינוי שם (כולל ברימוט)…: שינוי מקומי, דחיפת השם החדש ומחיקת הישן במרוחק. זה בלתי הפיך — הענף המרוחק הישן נעלם, וכל מי שהיה עליו צריך להפנות את עצמו מחדש. בתג שבגרף האפשרות מוצעת רק כשהענף עוקב אחרי ריפו מרוחק אחד בדיוק; כשיש כמה, בחר את הענף בסרגל הצד כדי שהמקור יהיה חד־משמעי.

מגבלות: Gitcito לא כותב מחדש שום דבר שהתייחס לשם הישן — בקשות משיכה פתוחות עדיין מצביעות על הענף שאיתו נפתחו, וכללי CI שמותאמים לתבנית שם ענף מפסיקים להתאים. שינוי שם של ענף שמסומן בעץ עבודה אחר ייכשל, ו‑git יאמר זאת.

משיכה ודחיפה של ענף שאתם לא עליו

לחיצה ימנית על כל ענף מקומי מציגה משיכה ודחיפה שפועלות על אותו ענף, ולא על הענף המצ׳וקאאט — בלי לעקוף דרך צ׳קאאוט כדי לעדכן שלושה ענפים. ראו הבאה, משיכה ודחיפה.

ענפים מוצמדים

סמנו בכוכב את הענפים שאתם חוזרים אליהם שוב ושוב — רחפו מעל השורה ולחצו ★, או לחיצה ימנית ← הצמדת ענף. הם עולים לקבוצת מוצמדים בראש המקטע המקומי, נזכרים לכל מאגר בנפרד, ובה בעת נשארים במקומם הרגיל מתחת.

צ׳קאאוט לענף מרוחק

לחיצה כפולה על ענף מרוחק יוצרת את הענף המקומי שעוקב אחריו. אם ענף מקומי בשם הזה כבר קיים והתפצל, Gitcito שואל איך ליישב — ריבייס, מיזוג או איפוס — ומציע לגבות קודם את הענף.

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

כשהענף המקומי שלך מפגר

הוא מקודם קדימה (fast-forward) לקצה הרמוט כחלק מהמעבר. עץ עבודה מלוכלך נשמר תחילה ב-stash בעל שם ומשוחזר לאחר מכן, כך שהשינויים המקומיים לא מבטלים את העדכון.

כשהענף המקומי שלך מקדים

אם הענף המקומי מקדים ואין ברמוט שום דבר חדש, מעבר אליו יענה על בקשה לענף הרמוטי בעבודה שלך שטרם נדחפה — ולכן שום דבר לא מתחלף עד שתגיד לאיזה צד התכוונת:

בחירה מה קורה
מעבר לענף המקומי עובר לענף המקומי, הקומיטים נשארים. מה שכל לקוח אחר עושה בשקט.
איפוס (soft) מחזיר את הענף לקצה הרמוט; השינויים של הקומיטים נשארים ב-staging, מוכנים לקומיט חדש.
איפוס (mixed) אותה תזוזה, אבל השינויים נשארים מחוץ ל-staging בעץ העבודה.
איפוס (hard) מוחק את הקומיטים ואת השינויים שלהם.

חלון הענף המקדים: מעבר לענף המקומי, או איפוס soft, mixed או hard

השאר את ליצור קודם ענף גיבוי מסומן, וקצה הענף המקומי יישמר בשם backup/<ענף>-<חותמת-זמן> לפני שמשהו זז — כך שאפילו איפוס hard נמצא במרחק מעבר אחד מביטול. האיפוס נכנס גם למחסנית הביטול (⌘Z), אבל רק עד סגירת המאגר; ענף הגיבוי שורד גם אחריה.

מגבלות: החלון משווה את הענף רק מול הפניית המעקב שהובאה זה עתה, ולכן רמוט שדחה את ה-fetch (חוסר חיבור, פרטי התחברות שגויים) מושווה מול הקצה האחרון הידוע. הוא לא אומר דבר על איכות הקומיטים שלך — רק שהם קיימים כאן ולא שם.

רימוטים

מדור הרימוטים בסרגל הצד הוא המקום שבו מוסיפים, עורכים, מביאים ומסירים רימוטים. הבאה, משיכה או דחיפה במאגר בלי אף אחד פותחת את אותו דיאלוג הוספת רימוט — הדביקו כתובת או צרו את המאגר אצל המארח — במקום לא לעשות כלום. ראו הבאה, משיכה ודחיפה.

ראו גם: מיזוג וריבייס · עצי עבודה

שיפור התרגום הזה ב־GitHub