Git Abort Merge: ביטול מיזוג
עודכן לאחרונה
אם git merge נתקל בקונפליקטים ומעדיפים לסגת במקום לפתור אותם, git merge --abort מבטל את המיזוג ומחזיר את הענף בדיוק למצב שבו היה לפני שהתחלתם. זו דרך המילוט הנקייה ממיזוג שהשתבש.
מיזוג שכבר הסתיים מבטלים בדרך אחרת, ראו בהמשך. נסו את הפקודות האלה בעורך הטרמינל אונליין: shell אמיתי בדפדפן.
תחביר
| פקודה | מה היא עושה |
|---|---|
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 מלמד מיזוג ופתרון קונפליקטים צעד אחר צעד.