GIT משתמשת בסניפים כדי לבודד זרמי פיתוח, כדי למנוע מענף השחרור היציב להיות מזוהם. הבאת עבודה בסניף לזרם הראשי פירושה מיזוג סניפים. כך אתה עושה את זה.
מה מיזוג ב- Git?
מתכונן למזג סניף בגיט
ביצוע מיזוג
ביצוע מיזוג קדימה במהירות בגיט
כיצד לפתור סכסוכים מיזוג ב- GIT
הכל מתמזג בסופו של דבר
מה מיזוג ב- Git?
GIT נועד להפוך את הסתעפות לפשוטה ומהירה. בניגוד למערכות בקרת גרסאות אחרות, הסתעפות ב- GIT היא עניין טריוויאלי. בפרויקטים רב-מפתחים במיוחד, הסתעפות היא אחד מכלי הארגון העיקריים של GIT.
סניף מאמצי פיתוח חדשים של ארגז חול כך שניתן לשנות או להוסיף קוד מבלי להשפיע על הקוד בסניפים אחרים, במיוחד על סניף הראשי או הראשי. זה בדרך כלל מכיל את הגרסה היציבה של בסיס הקוד שלך.
בידוד השינויים הללו מגרסת הקוד היציבה שלך הגיוני לחלוטין. אך במוקדם או במאוחר הקוד החדש ייבדק, ייבדק ויחץ גומי כדי להתגלגל לסניף המאסטר. בשלב זה אתה צריך למזג את הסניף שלך לסניף המאסטר.
למעשה, לסניפים יכולים להיות סניפי משנה כך שתוכלו למזג את הסניף שלכם לסניף אחר במקום לסניף המאסטר. רק זכרו שממזגים תמיד לוקחים ענף אחד וממזגים אותו ל- יַעַד סניף, לא משנה מה הענף הזה. אם אתה רוצה למזג את סניף הראשי שלך לסניף אחר, אתה יכול אפילו לעשות זאת.
כמו רוב הפעולות ב- GIT, אתה מבצע מיזוג במאגר המקומי שלך ודוחף אותן למאגר המרוחק שלך.
מתכונן למזג סניף בגיט
יש לנו פרויקט פיתוח קטן עם מאגר GIT מקומי ומאגר GIT מרוחק. יצרנו סניף בשם "Bugfix14" מסניף "המאסטר" ועבדנו על פיתרון לבאג.
העבודה הזו הושלמה, ובדקנו את הקוד שלנו. הכל עובד כצפוי. אנו רוצים לגלגל את השינויים הללו לסניף המאסטר כך שהתיקון שלנו הוא חלק מההפצה הבאה של התוכנה.
יש מעט הכנה לפני שנבצע את המיזוג. עלינו לוודא שסניף היעד - במקרה זה סניף "המאסטר" - והסניף שאנו הולכים להתמזג אליו שניהם מעודכנים.
- בסניף Bugfix14 : זהו הסניף הנוכחי שלנו.
- הסניף שלך מעודכן עם 'Origin/Bugfix' : לסניף במאגר המקומי שלנו יש אותה היסטוריה של התחייבות כמו הסניף במאגר המרוחק. זה אומר שהם זהים.
- אין מה להתחייב אין שינויים בתחום הבמה שלא בוצע.
- עץ עובד נקי : אין שינויים לא מבולבלים בספריית העבודה.
כל אלה מצביעים על כך שהסניף מעודכן, וברור לנו להמשיך. אם מישהו מאלו הצביע על כך שקיימים שינויים, נצטרך לביים אותם, להתחייב אותם ולדחוף אותם לשלט. אם מישהו אחר עבד על קבצים אלה, ייתכן שנצטרך למשוך את השינויים שלהם מהמאגר המרוחק.
בדיקת הסניף שאנו הולכים להתמזג מפשטת את תהליך המיזוג. זה גם מאפשר לנו לאמת שזה מעודכן. בואו נסתכל על סניף המאסטר.
אנו מקבלים את אותם אישורים שסניף "המאסטר" מעודכן.
קָשׁוּר: כיצד לבחור את זרימת העבודה של GIT & amp; דגם הסתעפות שמתאים לצוות שלך
ביצוע מיזוג
סניף "Bugfix14" הסתעף מסניף "המאסטר". היה התחייבות לסניף "המאסטר" לאחר שנוצר סניף "Bugfix14". היו כמה התחייבויות לסניף "Bugfix14".
דאגנו לשני הסניפים שלנו עדכניים, ובדקנו את סניף "המאסטר". אנו יכולים להנפיק את הפקודה כדי למזג את סניף "Bugfix14" לסניף "המאסטר".
המיזוג מתרחש. סניף "Bugfix14" עדיין קיים, אך כעת השינויים שנעשו בסניף ההוא התמזגו לסניף "המאסטר".
במקרה זה פקודת המיזוג מבצעת א מיזוג תלת-כיווני ו יש רק שני סניפים, אך ישנן שלוש התחייבויות מעורבות. הם הראש של אחד הסניפים, והתחייבות שלישית המייצגת את פעולת המיזוג עצמה.
כדי לעדכן את המאגר המרוחק שלנו, אנו יכולים להשתמש ב Git Push פקודה.
יש אנשים שמעדיפים למחוק סניפי צד ברגע שהם מיזגו אותם. אחרים דואגים לשמור עליהם כתיעוד של היסטוריית הפיתוח האמיתית של הפרויקט.
אם אתה רוצה למחוק את הענף, אתה יכול לעשות זאת באמצעות
סניף גיט
פקודה עם
-D
אפשרות (מחק) אפשרות.
ל מחק את הענף במאגר המרוחק השתמש בפקודה זו:
תהיה לך היסטוריה של התחייבות ליניארית, אבל זו לא תהיה ההיסטוריה האמיתית.
קָשׁוּר: כיצד למחוק סניפי GIT על מאגרים מקומיים ומרוחקים
ביצוע מיזוג קדימה במהירות בגיט
אם לא ביצעת התחייבות לסניף "המאסטר", ההיסטוריה שלך תיראה כך. זה ייראה גם אם יש לך נוזל מחדש סניף הפיתוח שלך כך שהוא קשור לסוף סניף "המאסטר".
מכיוון שאין התחייבויות בסניף "המאסטר", כדי למזג את סניף "Bugfix15", כל מה שגיט צריך לעשות הוא להצביע על מצביע הראש "המאסטר" להתחייבות האחרונה של סניף "Bugfix15".
גיט יבצע מיזוג קדימה מהיר בכל פעם שזה יכול ו אם התחייבות לסניף "אדון" פירושו כי מיזוג קדימה מהיר אינו אפשרי, GIT ישתמש מיזוג תלת-כיווני ו
אתה לא יכול
כּוֹחַ
מיזוג מהיר קדימה-יתכן שלא ניתן, אחרי הכל-אבל אתה יכול להכריז שזה הולך להיות מיזוג קדימה או כלום. יש אפשרות שמורה ל- GIT להשתמש במיזוג קדימה במהירות אם היא יכולה, אך לא לעשות מיזוג תלת-כיווני אם זה לא יכול. האפשרות היא
--ף בלבד
(מיזוג מהיר קדימה בלבד).
זה ממזג את סניף "Bugfix15" לסניף "המאסטר", אך רק אם אפשרי מיזוג מהיר קדימה.
במקרה זה, היו התחייבויות לסניף "המאסטר", ולכן מיזוג קדימה מהיר אינו אפשרי.
כיצד לפתור סכסוכים מיזוג ב- GIT
אם שונו אותם חלקים של אותו קובץ בשני הענפים, לא ניתן למזג את הענפים. אינטראקציה אנושית נדרשת כדי לפתור את העריכות הסותרות.
כאן ביצענו שינויים בקובץ שנקרא "rot.c" בסניף שנקרא "Bugfix17" שאנחנו רוצים להתמזג לסניף "המאסטר". אבל "rot.c" השתנה גם בסניף "המאסטר".
כשאנחנו מנסים למזג את זה, אנו מקבלים אזהרה שיש קונפליקטים. GIT מפרט את הקבצים הסותרים, ואומר לנו שהמיזוג נכשל. נוכל לחזור לחלוטין להשתמש ב
--לְהַפִּיל
אוֹפְּצִיָה:
אבל פתרון מיזוג אינו מפחיד כמו שזה נשמע. GIT עשתה עבודה מסוימת כדי לעזור לנו. אם אנו עורכים את אחד הקבצים המנוגדים - במקרה שלנו, יש לנו רק אחד - אנו נמצא את קטעי הקוד הסותר המודגשים עבורנו.
כל קונפליקט מוגבל על ידי שבע דמויות פחות מאשר "
& lt; & lt; & lt; & lt; & lt; & lt; & lt;
"ושבע דמויות גדולות יותר"
& gt; & gt; & gt; & gt; & gt; & gt; & gt;
", עם שבעה סימנים שווים"
========
" ביניהם.
- הקוד שמעל השלטים השווים הוא מהסניף שאתה ממזג לְתוֹך ו
- הקוד שמתחת לסימן השוויון הוא הקוד מהסניף שאתה מנסה לְמַזֵג ו
אתה יכול בקלות לחפש את אחת הקבוצות של שבע תווים ולעבור מקונפליקט לקונפליקט דרך הקובץ שלך. עבור כל קונפליקט, עליכם לבחור איזו מערך עריכות אתם עומדים לשמור. עליכם לערוך את הקוד שאתה דוחה, ואת הקווים שבעה תווים ש- GIT הוסיף.
אנו הולכים לשמור על הקוד מסניף "Bugfix17". לאחר העריכה, הקובץ שלנו נראה כך.
כעת אנו יכולים להמשיך עם המיזוג. אבל שימו לב, אנו משתמשים ב
לְבַצֵעַ
פקודה לעשות זאת, לא
לְמַזֵג
פקודה.
אנו מבצעים את השינוי על ידי ביצוע הקובץ וביצועו כרגיל. אנו נבדוק את הסטטוס לפני שנעשה את ההתחייבות הסופית.
המיזוג הושלם. כעת אנו יכולים לדחוף את זה למאגר המרוחק שלנו.
קָשׁוּר: כיצד לתקן, לערוך או לבטל את התחייבות Git (שינוי היסטוריה של GIT)
הכל מתמזג בסופו של דבר
בסופו של דבר יש למזג את כל הענפים, כך שהשינויים בהם לא יתומים ונשכחו מהם.
מיזוג סניפים הוא קל, אך התמודדות עם קונפליקטים יכולה להסתבך בצוותים עסוקים וגדולים יותר. פתרון התנגשויות עשוי לדרוש קלט מכל מפתח רק כדי להסביר מה הקוד שלהם ומדוע הם ביצעו את השינויים שלהם. עליכם להבין את זה, לפני שתוכלו לקבל החלטה מושכלת לגבי אילו עריכות לשמור.
- › כיצד לשנות שם סניף בגיט
- › כיצד לבדוק סניף GIT מרוחק
- › כיצד לשים שינויים ב- GIT
- › כיצד להחליף ענפים ב- GitHub
- › Git Rebase: כל מה שאתה צריך לדעת
- › ה- OnePlus 11 כאן, אבל עם התחלה גסה
- › Microsoft Edge זוכה לצ'אט AI ומראה חדש ב- Windows
- › האוזניות הטובות ביותר עבור אוהדי האייפון פשוט פגעו במחיר הנמוך ביותר שלהם