Git: מיזוג סניף למאסטר

תשובה מהירה - מיזוג סניף למאסטר

אם אתה מחפש תשובה מהירה, למזג סניף לתוך master סניף - אתה checkout master ו merge some_branch:

$ git checkout new-branch
# ...develop some code...

$ git add .
$ git commit –m "Some commit message"
$ git checkout master
Switched to branch 'master'
$ git merge new-branch

אתה תמיד checkout הענף שאליו אתה מתמזג, ו merge סניף שכבר יש בו שינויים.

הבנת מיזוג סניפים עם Git

אם אתה חדש יותר ב-Git, עם זאת, שווה להקדיש כמה דקות כדי להבין את הפקודות הללו וכיצד הן פועלות. זה פשוט באופן מפתיע וייקח אותך דרך ארוכה.

הערה: בשנת 2020, Git (לצד פלטפורמות אירוח מאגר מרכזיות כמו GitHub, GitLab וכו') אימצה שינוי בטרמינולוגיה הרשמית, ושם ברירת המחדל של הסניף שונה ל- main, בשל הקונוטציות השליליות המילה master עשוי לגרור. פרויקטים רבים לא עברו או שינו את שמות הסניפים הראשיים שלהם, אז לעתיד הנראה לעין - התנאים master ו main ישמש ככל הנראה לסירוגין.

אחת התכונות החזקות ביותר של Git היא היכולת ליצור ולמזג בקלות סניפים ושינויים בבסיס הקוד.

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

זה משפר מהותית את זרימת העבודה של הפיתוח עבור רוב הפרויקטים על ידי עידוד התחייבויות קטנות יותר, ממוקדות יותר, מפורטות, בכפוף לביקורת עמיתים קפדנית.

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

זרימת עבודה מסועפת בשימוש נפוץ ב- Git היא יצירת ענף קוד חדש עבור כל תכונה חדשה, תיקון באגים או שיפור.

אלה נקראים תכונה סניפים.

כל סניף מחלק את ההתחייבויות הקשורות לתכונה מסוימת. לאחר השלמת התכונה החדשה – כלומר בוצעה קבוצה של שינויים בענף התכונה – היא מוכנה להתמזג חזרה לענף הראשי (או ענף קו קוד ראשי אחר בהתאם לזרימת העבודה בשימוש).

הערה: הסתעפות תכונה היא לא רק זרימת עבודה מסועפת שאתה יכול ללכת איתה, אבל היא מאומצת באופן נרחב, ומתאפשרת על ידי הפשטות של פונקציונליות המיזוג של Git.

מיזוג סניף לתוך אחר עם Git

השמיים git branch הפקודה משמשת לרשימת כל הענפים הקיימים במאגר. כוכבית תופיע ליד הסניף הפעיל כעת:

$ git branch
* master

כדי ליצור סניף חדש, נוכל להשתמש ב- git branch new-branch פקודה. פעולה זו תיצור סניף חדש המשקף את ההתחייבויות בסניף הפעיל כעת:

$ git branch new-branch
$ git branch
* master
new-branch

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

בשלב זה יצרנו סניף חדש, אך עדיין נמצאים בסניף המקור. כדי להתחיל לעבוד על הענף החדש עלינו להפעיל תחילה את הפקודה git checkout new-branch. זה ישנה את הסניף הפעיל לסניף החדש:

$ git checkout new-branch
Switched to branch ‘new-branch'
$ git branch
master
* new-branch

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

קודם כל אנחנו רצים git checkout master כדי לשנות את הסניף הפעיל בחזרה ל- master ענף. לאחר מכן אנו מפעילים את הפקודה git merge new-branch ל למזג את התכונה החדשה לתוך המאסטר ענף.

הערה: git merge ממזג את הענף שצוין לענף הפעיל כעת. אז אנחנו צריכים להיות בסניף שאנחנו מתמזגים לתוך.

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

# ...develop some code...

$ git add .
$ git commit –m "Some commit message"
$ git checkout master
Switched to branch 'master'
$ git merge new-branch

עיין במדריך המעשי והמעשי שלנו ללימוד Git, עם שיטות עבודה מומלצות, סטנדרטים מקובלים בתעשייה ודף רמאות כלול. תפסיק לגוגל פקודות Git ולמעשה ללמוד זה!

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

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

$ git checkout master
$ git branch new-branch
$ git checkout new-branch

# ...develop some code...

$ git add .
$ git commit –m "Some commit message"
$ git checkout master
$ git merge new-branch

על המחבר

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

בול זמן:

עוד מ Stackabuse