לפתור קונפליקטים של מיזוג
זה השיעור האחרון בקורס, וזה הרגע להרגיע פעם אחת ולתמיד: קונפליקט מיזוג הוא לא שגיאה ולא כישלון — הוא חלק נורמלי לגמרי מעבודת צוות. רוב הזמן Git ממזג שינויים שלא חופפים לבד, בשקט, בלי לשאול אותך כלום. הוא מבקש את ההכרעה שלך רק במקרה אחד צר: כששני ענפים שינו את אותן שורות באותו קובץ — אז Git לא רוצה ל
קונפליקט מיזוג הוא כמו שני אנשים שכתבו בעיפרון על אותה שורה בדף אחד. Git מנסה לאחד את כולם, אבל על השורה החופפת הוא לא מעז לנחש — הוא מסמן את שתי הגרסאות זו מעל זו ומבקש ממך לבחור איזו נשארת. ברגע שבחרת ומחקת את הסימנים — הסכסוך נגמר.
- קונפליקט מיזוג (merge conflict)
- מצב שבו שני ענפים שינו את אותן שורות באותו קובץ, ולכן Git לא יכול למזג אוטומטית. הוא מסמן את שתי הגרסאות ומבקש שתבחר/י. זה נורמלי, לא שגיאה.
- סימני קונפליקט (conflict markers)
- השורות ש-Git כותב בתוך הקובץ: <<<<<<< לתחילת הצד שלך (HEAD), ======= כמפריד, ו->>>>>>> לתחילת הצד השני. צריך למחוק את שלושתן בסוף.
- HEAD (הצד שלך)
- בקונפליקט, הקטע שבין <<<<<<< HEAD ל-======= הוא הגרסה של הענף שאת/ה נמצא/ת עליו עכשיו — 'הצד שלי'.
- מיזוג אוטומטי (auto-merge)
- כששינויים של שני ענפים לא נוגעים באותן שורות, Git ממזג אותם לבד בלי לשאול. רוב המיזוגים עוברים כך בשקט, בלי שום קונפליקט.
- לפתור (resolve)
- התהליך: פותחים את הקובץ, בוחרים מה נשאר (צד אחד, השני, או שילוב), מוחקים את כל הסימנים, ואז git add <file> ו-git commit להשלמת המיזוג.