Menu
Coddy logo textTech

Git Abort Merge: ביטול מיזוג

עודכן לאחרונה

אם git merge נתקל בקונפליקטים ומעדיפים לסגת במקום לפתור אותם, git merge --abort מבטל את המיזוג ומחזיר את הענף בדיוק למצב שבו היה לפני שהתחלתם. זו דרך המילוט הנקייה ממיזוג שהשתבש.

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

git merge --abort מבטל את המיזוג שנתקע בקונפליקט ומחזיר את הענף למצבו לפני שהמיזוג התחיל.

תחביר

פקודהמה היא עושה
git merge --abortביטול מיזוג עם קונפליקטים והחזרה למצב שלפני המיזוג
git reset --mergeהמקבילה הישנה: ביטול המיזוג ואיפוסו
git merge --quitיציאה מהמיזוג תוך השארת עץ העבודה כפי שהוא

ביטול מיזוג שכבר הסתיים

זה שונה מביטול באמצע: קומיט המיזוג כבר קיים.

מצבפקודה
המיזוג מקומי ולא נדחףgit reset --hard ORIG_HEAD
המיזוג כבר נדחףgit revert -m 1 <merge-hash>

שאלות נפוצות על ביטול מיזוג ב-Git

איך מבטלים מיזוג שנמצא בתהליך?
הריצו git merge --abort. אם מיזוג נעצר בגלל קונפליקטים ואין לכם רצון לפתור אותם, הפקודה מבטלת את כל הפעולה ומחזירה את הענף ואת עץ העבודה בדיוק למצב שבו היו לפני תחילת המיזוג.
מה ההבדל בין git merge --abort לבין git reset --merge?
בעיקרון הן עושות את אותה עבודה: מבטלות מיזוג בתהליך ומשחזרות את המצב שלפני המיזוג. git merge --abort היא הפקודה המודרנית שנועדה בדיוק לכך; git reset --merge היא הדרך הישנה שעדיין עובדת. עדיף להשתמש ב-git merge --abort לשם הבהירות.
איך מבטלים מיזוג שכבר הסתיים?
זה כבר לא abort, כי קומיט המיזוג כבר קיים. אם המיזוג מקומי בלבד, git reset --hard ORIG_HEAD מחזיר את הענף למקום שבו היה לפני המיזוג, וזה עובד גם אחרי fast-forward, שבו HEAD~1 לא היה עובד. הפקודה מוחקת עבודה שלא נשמרה בקומיט, אז בדקו קודם עם git status. אם המיזוג כבר נדחף, השתמשו ב-git revert -m 1 <merge-hash> כדי להפוך אותו בלי לשכתב היסטוריה משותפת.
האם ביטול מיזוג יגרום לאובדן שינויים אחרים שלי?
git merge --abort משחזר את המצב שהיה רגע לפני המיזוג, כך שהשינויים של המיזוג נזרקים, אבל העבודה שכבר שמרתם בקומיטים נשארת שלמה. אם היו שינויים שלא נשמרו בקומיט לפני תחילת המיזוג, עשו להם commit או stash קודם: הביטול משחזר את מצב הקומיט שלפני המיזוג.
אפשר לתרגל את זה אונליין?
כן. פתחו את עורך הטרמינל אונליין כדי להריץ git merge --abort ב-shell אמיתי בדפדפן, בלי להתקין כלום. גם קורס ה-Git האינטראקטיבי והחינמי של Coddy מלמד מיזוג ופתרון קונפליקטים צעד אחר צעד.
איור של שפות התכנות ב-Coddy

ללמוד Git עם Coddy

להתחיל