تخطَّ إلى المحتوى
GitTree
شروحات Gitقراءة في 4 دقائق

طريقة إلغاء الدمج أو إعادة التأسيس في Git

توقف الدمج على تعارضات وتريد الخروج. يعيدك git merge --abort إلى حيث بدأت. إليك الأمر الصحيح لكل عملية متوقفة، وما يبقيه كل منها، وما تفعله إذا كانت العملية قد اكتملت بالفعل.

بقلم Kodmora

شركة البرمجيات المطوّرة لـGitTree

آخر تحديث
  • الدمج
  • إعادة التأسيس
  • التراجع والاستعادة
  • تعارضات الدمج
في هذه الصفحة

لإلغاء دمج جارٍ، نفّذ `git merge --abort`. ولإلغاء إعادة التأسيس، نفّذ git rebase --abort. يعيد الأمران فرعك إلى ما كان عليه قبل البدء تمامًا. ولا يعملان إلا والعملية متوقفة. أما بعد إيداع الدمج فلا شيء يُلغى، وتحتاج إلى git reset أو git revert.

ما الأمر الذي يلغي كل عملية؟

نفّذ git status أولًا. تذكر أسطره الأولى ما هو جارٍ، وبذلك تعرف الأمر المطلوب:

أمر الإلغاء لكل عملية
العملية الجاريةإلغاؤهامتابعتها
الدمجgit merge --abortgit commit أو git merge --continue
إعادة التأسيسgit rebase --abortgit rebase --continue أو --skip
الانتقاءgit cherry-pick --abortgit cherry-pick --continue
العكسgit revert --abortgit revert --continue
رقعة من git amgit am --abortgit am --continue

كيف ألغي الدمج؟

git status
# You have unmerged paths.

git merge --abort
git status
# nothing to commit, working tree clean

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

كيف ألغي إعادة التأسيس؟

git rebase --abort

يعود الفرع إلى ما كان عليه قبل بدء إعادة التأسيس، حتى لو أعيد تطبيق بعض الإيداعات. وللتوقف مع إبقاء ما أعيد تطبيقه على HEAD منفصل، استخدم git rebase --quit ثم قرر ما تبقيه. وإن لم يعد أحد الإيداعات ضروريًا، فإن git rebase --skip يسقطه ويتابع.

لماذا يقول Git إنه There is no merge to abort؟

fatal: There is no merge to abort (MERGE_HEAD missing).
  • اكتمل الدمج بالفعل. اقرأ git log -3. إن كان إيداع الدمج موجودًا، فتراجع عنه كما هو موضح أدناه.
  • العملية إعادة تأسيس أو انتقاء. يذكر git status العملية الحقيقية. استخدم أمر إلغائها من الجدول.
  • جاءت التعارضات من `git stash pop`. هذا ليس دمجًا. نفّذ git reset --merge لإزالتها. ويبقى المخبأ محفوظًا، فلا يضيع شيء.

كيف أتراجع عن دمج اكتمل؟

إن لم تدفعه، فأعد الفرع إلى الوراء. يحفظ Git الموضع السابق للدمج في ORIG_HEAD:

git reset --hard ORIG_HEAD

يتخلص هذا الأمر من التغييرات غير المودَعة، فتحقق من git status أولًا. وإن كنت قد دفعته، فأبقِ السجل سليمًا بإيداع عكسي، كما يشرح مقال طريقة التراجع عن إيداع دمج:

git revert -m 1 <merge-sha>

كيف أتراجع عن إعادة تأسيس اكتملت؟

ابحث في reflog عن الإيداع السابق لإعادة التأسيس وأعد التعيين إليه:

git reflog
# 7c1d9ab HEAD@{4}: rebase (start): checkout main
# 3e52f10 HEAD@{5}: commit: add search box

git reset --hard HEAD@{5}

اختر المدخل السابق مباشرة للسطر الذي يقول rebase (start). ويشرح مقال التراجع عن reset وrebase والإيداعات هذا بتفصيل أكبر.

هل ألغي العملية أم أحل التعارضات؟

ألغِ إذا دمجت الفرع الخطأ، أو كان لديك عمل غير مودَع، أو أردت إعادة التفكير في الطريقة. الإلغاء لا يكلف شيئًا ويمكنك البدء من جديد متى شئت. وحلّ التعارضات إذا كانت قليلة وكنت تفهم الطرفين. ويشرح مقال حل تعارضات الدمج طريقة قراءة العلامات.

طريقة إلغاء الدمج أو إعادة التأسيس في GitTree

  1. اقرأ الشريط

    يذكر شريط أعلى المخطط العملية، مثل جارٍ دمج feature/search في develop، وعدد التعارضات المتبقية.

  2. اختر إيقاف

    اضغط إيقاف… في الشريط. ويوجد بجانبه حلّ ومتابعة إن غيّرت رأيك.

  3. أكّد

    يوضح مربع الحوار ما سيُسقط. اضغط إيقاف. يحفظ GitTree ما يسقطه في لقطات استعادة أولًا، فيمكن لأمر تراجع إعادته.

إيقاف دمج متوقف في GitTree من الشريط أعلى المخطط.
إيقاف دمج متوقف في GitTree من الشريط أعلى المخطط.واجهة GitTree مع مستودع للعرض.

راجع متابعة العملية أو تخطيها أو إيقافها لكل الحالات، ودرس المتابعة والتخطي والإيقاف للتدرب.

الأسئلة الشائعة

هل يحذف git merge --abort تغييراتي؟

يزيل تغييرات الدمج وما حللته من تعارضات حتى الآن. أما ما أودعته قبل الدمج فآمن. وقد لا تعود التغييرات غير المودَعة من قبل الدمج سليمة، فأودِعها أو خبّئها قبل الدمج.

ما الفرق بين git merge --abort وgit reset --merge؟

git merge --abort هو طريق الخروج المعتاد من الدمج، وهو ينفّذ git reset --merge نيابة عنك أثناء الدمج. استخدم git reset --merge مباشرة عندما تأتي التعارضات من شيء آخر مثل git stash pop.

كيف ألغي git pull؟

السحب المتوقف على تعارضات هو دمج أو إعادة تأسيس. نفّذ git status لتعرف أيهما، ثم استخدم git merge --abort أو git rebase --abort.

هل يمكنني إلغاء الدمج بعد حل بعض التعارضات؟

نعم، ما لم تودِع. يتخلص git merge --abort من الحلول أيضًا، فتبدأ من الصفر إن دمجت مجددًا. وتفعيل git rerere يجعل Git يتذكرها.

ماذا يفعل git rebase --quit؟

يوقف إعادة التأسيس دون إعادة HEAD، فتبقى على الإيداعات التي أعيد تطبيقها حتى الآن. وgit rebase --abort هو ما تريده في معظم الحالات.

المصادر

تحققنا من المعلومات عن المنتجات الأخرى من صفحاتها الرسمية بتاريخ 7 نوفمبر 2026. الأسعار والميزات تتغير، وصفحات الشركات هي المرجع.