Menu
Coddy logo textTech
flag Ar iconالعربيةdown icon

Git: إجهاض دمج

آخر تحديث

إذا واجه git merge تعارضات وفضّلت التراجع بدلاً من حلّها، فإن git merge --abort يلغي الدمج ويعيد فرعك تمامًا إلى الحالة التي كان عليها قبل أن تبدأ. إنه مخرج الطوارئ النظيف من دمج ساء مساره.

أما الدمج الذي اكتمل بالفعل فتتراجع عنه بطريقة مختلفة - انظر أدناه. جرّب هذه الأوامر في ساحة الطرفية (terminal playground) - صدفة حقيقية داخل متصفحك.

git merge --abort يلغي الدمج المتعارض ويعيد الفرع إلى حالته قبل بدء الدمج.

الصيغة

CommandWhat it does
git merge --abortيلغي دمجًا به تعارضات ويعيد الحالة السابقة للدمج
git reset --mergeمكافئ أقدم - يجهض الدمج ويعيد ضبطه
git merge --quitيخرج من الدمج لكنه يبقي شجرة العمل كما هي

التراجع عن دمج اكتمل بالفعل

يختلف عن الإجهاض - كوميت الدمج موجود بالفعل.

SituationCommand
الدمج محلي، ولم يُدفع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 من أجل الوضوح.
كيف أتراجع عن دمج اكتمل بالفعل؟
هذا ليس إجهاضًا، لأن كوميت الدمج موجود بالفعل. إذا كان الدمج محليًا فقط، فإن git reset --hard ORIG_HEAD يعيد الفرع إلى موضعه قبل الدمج - وهو يعمل أيضًا بعد fast-forward حيث لا يصلح HEAD~1. لكنه يتجاهل العمل غير المودَع، لذا تحقق من git status أولًا. أما إذا كنت قد دفعت الدمج بالفعل، فاستخدم git revert -m 1 <merge-hash> لعكسه دون إعادة كتابة التاريخ المشترك.
هل سيؤدي إجهاض الدمج إلى فقدان تغييراتي الأخرى؟
يعيد git merge --abort الحالة التي كانت قبل الدمج مباشرة، لذا تُلغى تغييرات الدمج، لكن عملك الذي أودعته (committed) يبقى سليمًا. إذا كانت لديك تغييرات غير مودعة قبل بدء الدمج، فأودعها أو خبّئها باستخدام stash أولاً - فالإجهاض يعيد حالة الكوميت السابقة للدمج.
هل يمكنني التدرّب على هذا عبر الإنترنت؟
نعم. افتح ساحة الطرفية (terminal playground) لتشغيل git merge --abort في صدفة حقيقية داخل متصفحك - لا شيء لتثبيته. كما يغطي دورة Git التفاعلية المجانية من Coddy الدمج وحل التعارضات خطوة بخطوة.
Coddy programming languages illustration

تعلّم Git مع Coddy

ابدأ الآن