مولد أوامر Git

التالي

لقد قام كل مهندس بالبحث على جوجل عن عبارة “كيف ألغي التزام الأخير” على الأقل مرتين. بدلًا من التخمين بين reset --soft وreset --mixed وreset --hard، اختر المهمة من القائمة، وسيقوم البرنامج تلقائيًا بعرض الأمر الدقيق المناسب، مع إدخال فرعك ورقم التزام (SHA) أو اسم العلامة.

كيفية إنشاء أمر في نظام Git

  1. 1

    اختر المهمة

    إلغاء آخر التزام، تعديل رسالة الالتزام، إعادة الربط بالفرع الرئيسي، انتقاء التزام (cherry-pick)، إعادة التعيين القسري إلى البعيد، وضع علامة على إصدار...

  2. 2

    أدخل المعاملات

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

  3. 3

    اقرأ الأمر

    تقوم الأداة بتجميع العلامات الصحيحة بالترتيب الصحيح.

  4. 4

    انسخه وشغّله

    انسخ الأمر والصقه في الطرفية (terminal) الخاصة بك؛ فهو سطر جاهز للتشغيل مباشرةً، وليس كودًا نموذجيًا.

المهام التي يغطّيها

المهمة الأمر الناتج
إلغاء آخر التزام (مع الاحتفاظ بالمُجهَّز) git reset --soft HEAD~1
تعديل رسالة آخر التزام git commit --amend -m "…"
التخلص من جميع التغييرات غير المُلتزَم بها git restore . + git clean -fd
إنشاء فرع جديد والتبديل إليه git checkout -b feature/x
حذف فرع محليًا وعن بُعد git branch -d x + git push origin --delete x
مزامنة فرع ميزة مع الفرع الرئيسي git fetch origin + git rebase origin/main
انتقاء التزام (cherry-pick) git cherry-pick <sha>
التراجع عن التزام (آمن) git revert <sha>
وضع علامة على إصدار ودفعه git tag -a v1.0.0 -m "…" + git push origin v1.0.0
إعادة تعيين قسرية للمحلي إلى البعيد git fetch origin + git reset --hard origin/main

الأوامر المُصنَّفة كآمنة أو تدميرية

  • آمن (قابل للتراجع): commit، switch، checkout -b، revert، tag.
  • تدميري على شجرة العمل المحلية: restore .، clean -fd، reset --hard.
  • تدميري على السجل المشترك: push --force، filter-repo، rebase على فروع يستخدمها الآخرون.

نصيحة: جرّب الأوامر الخطرة على وضع التشغيل التجريبي

قبل تنفيذ git clean -fd، شغّل git clean -nd؛ فالعلامة -n تطبع ما سيُحذف دون أن تحذفه فعليًا. نفس المبدأ ينطبق على git rm: اقرأ git status أولًا.

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

لأن كلمة “إلغاء” تحمل دلالات مختلفة: يُبقي reset --soft HEAD~1 التغييرات مُجهَّزة حتى تتمكن من إعادة الالتزام بها؛ بينما يُلغي --mixed تجهيزها؛ أما --hard فيدمرها تمامًا. ويتيح لك المولّد اختيار النية المطلوبة بدلًا من حفظ العلامات (flags) عن ظهر قلب.

يقوم revert بإنشاء تعديل جديد يلغي تعديلًا قديمًا، وهو أمر آمن على الفرع المشترك نظرًا لحفظ السجل التاريخي. أما reset فيعيد تدوير مؤشر الفرع، مما يؤدي إلى تغيير السجل التاريخي، ويتطلب إجراء عملية “force push” إذا كان الفرع مشتركًا.

نعم، بالنسبة لمهمة “حذف ملف من جميع سجلات الاستخدام”، فهي أكثر أمانًا وسرعة مقارنةً بالإصدار القديم filter-branch؛ ويجب تثبيتها بشكل منفصل (إما باستخدام الإصدار brew install git-filter-repo أو عبر أداة pip).

لا، يقتصر الأمر على طباعة الأمر فقط؛ فتشغيله هو قرارك دائمًا، ولذلك يمكنك مراجعة العلامات والسياق قبل الدخول إلى المستودع.

أدوات ذات صلة

الأداة متاحة بلغات أخرى