0Pricing
Git & GitHub Professional Workflow · درس

إعادة الأساس التفاعلية للسجل

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

إعادة الأساس التفاعلية للسجل درس مجاني في Git & GitHub Professional Workflow على CoddyKit. هذا هو الدرس 2 من أصل 4. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في Git & GitHub Professional Workflow، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة Git & GitHub Professional Workflow 4 دروس في المجموع.

تعرّفوا إلى إعادة الأساس التفاعلية

مرحبًا بكم في أداة Git القوية: إعادة الأساس التفاعلية! تتيح لكم إعادة كتابة سجل الالتزامات في مشروعكم قبل مشاركته مع الآخرين.

تخيّلوها آلةً للسفر عبر الزمن خاصة بالتزاماتكم، تتيح لكم تنقيح التغييرات أو دمجها أو إعادة ترتيبها لإنشاء تسلسل واضح وخطي يروي قصة عملكم.

لماذا ننقّي السجل؟

لماذا قد ترغبون في إعادة كتابة السجل؟

  • الوضوح: اجعلوا سجل التزامات مشروعكم سهل القراءة والفهم.
  • الإيجاز: ادمجوا الالتزامات الصغيرة والمتتابعة في تغيير واحد ذي معنى.
  • تصحيح الأخطاء: يساعد السجل النظيف عند استخدام أدوات مثل git bisect لتحديد الموضع الذي أُدخل فيه الخطأ.
  • طلبات السحب الأفضل: قدّموا للمساهمين مجموعة تغييرات مصقولة.

بدء إعادة الأساس التفاعلية

لبدء إعادة أساس تفاعلية، ستستخدمون الأمر git rebase -i. وعليكم تحديد المدى الذي تريدون الرجوع إليه.

على سبيل المثال، لإعادة أساس الالتزامات الثلاثة الأخيرة في فرعكم الحالي، استخدموا:

git rebase -i HEAD~3

يفتح هذا الأمر محررًا يعرض التزاماتكم الثلاثة الأخيرة والأوامر المتاحة.

أوامر محرر إعادة الأساس

عند بدء إعادة أساس تفاعلية، يفتح Git محررًا نصيًا يحتوي على قائمة بالالتزامات والتعليمات. ويبدأ كل التزام بأمر:

  • pick: استخدام الالتزام كما هو.
  • reword: استخدام الالتزام مع تعديل رسالته.
  • edit: استخدام الالتزام مع إيقاف العملية مؤقتًا لتعديل التغييرات.
  • squash: دمج الالتزام مع الالتزام السابق ودمج الرسائل.
  • fixup: دمج الالتزام مع الالتزام السابق وإهمال رسالة هذا الالتزام.
  • drop: إزالة الالتزام بالكامل.

مثال: إعادة صياغة رسالة التزام

لنفترض أنكم ارتكبتم خطأً مطبعيًا في رسالة التزام. يمكنكم استخدام reword لإصلاحه. غيّروا pick إلى reword بجوار الالتزام الذي تريدون تغييره:

pick 5a6b7c8 Add new feature
pick 1d2e3f4 Fix typo in docs
reword 9g0h1i2 Implement login screen

بعد حفظ المحرر وإغلاقه، سيطلب منكم Git تعديل رسالة الالتزام 9g0h1i2.

مثال: دمج الالتزامات

غالبًا ما تنشئون عدة التزامات صغيرة ومترابطة، وكان من الأفضل أن تكون التزامًا واحدًا. استخدموا squash لدمجها.

pick a1b2c3d Initial feature commit
squash e4f5g6h Add more details
fixup i7j8k9l Fix small bug

هنا، سيُدمج e4f5g6h في a1b2c3d، مع دمج رسالتيهما. وسيُدمج i7j8k9l أيضًا في a1b2c3d، لكن ستُهمَل رسالته (fixup).

مثال: حذف الالتزامات

إذا كان لديكم التزام تجريبي لم تعودوا بحاجة إليه، يمكنكم ببساطة استخدام drop لإزالته من السجل. غيّروا pick إلى drop أو احذفوا السطر بالكامل:

pick 1122334 Initial setup
drop 5566778 Test experimental feature
pick 9900112 Add user authentication

بعد الحفظ، سيُزال الالتزام 5566778 بالكامل من سجل فرعكم.

مثال: إعادة ترتيب الالتزامات

يمكنكم أيضًا تغيير ترتيب الالتزامات. ما عليكم سوى قص الأسطر ولصقها في المحرر لإعادة ترتيبها. وسيطبّق Git التغييرات بالترتيب الجديد.

الترتيب الأصلي:

pick abcdef1 Add feature A
pick 1234567 Add feature B

بعد إعادة الترتيب:

pick 1234567 Add feature B
pick abcdef1 Add feature A

كونوا حذرين، إذ قد تؤدي إعادة الترتيب إلى حدوث تعارضات إذا كانت الالتزامات تعتمد بعضها على بعض.

القاعدة الذهبية: لا تعيدوا أساس السجل المشترك!

هذا أمر بالغ الأهمية: لا تعيدوا أبدًا أساس الالتزامات التي دُفعت مسبقًا إلى مستودع بعيد مشترك (مثل GitHub أو GitLab) والتي قد يكون الآخرون قد سحبوها.

تُعيد إعادة الأساس كتابة معرّفات الالتزامات. فإذا بنى الآخرون عملهم على الالتزامات الأصلية، فستظهر التزاماتكم بعد إعادة الأساس كسجل مختلف تمامًا، مما يسبب تعارضات كبيرة وارتباكًا للجميع.

أعيدوا أساس الالتزامات الموجودة على فرعكم المحلي فقط!

اختبار أوامر إعادة الأساس

لديكم ثلاثة التزامات: A (Initial) وB (Minor fix) وC (Refactor). تريدون دمج B في A مع الإبقاء على رسالة A الأصلية، ثم الإبقاء على C كما هو. ما الأوامر التي ستستخدمونها في محرر إعادة الأساس التفاعلية (من الأقدم إلى الأحدث)؟

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

لقد تعلمتم عن الأمر القوي git rebase -i!

  • يتيح لكم إعادة كتابة سجل الالتزامات المحلي.
  • يمكنكم استخدام reword لتعديل الرسائل، أو squash أو fixup لدمج الالتزامات، أو drop لإزالة التغييرات غير المرغوبة، بل وإعادة ترتيب الالتزامات أيضًا.
  • تذكروا دائمًا القاعدة الذهبية: لا تعيدوا أبدًا أساس الالتزامات التي دُفعت مسبقًا إلى مستودع بعيد مشترك.

يساعدكم إتقان إعادة الأساس التفاعلية في الحفاظ على سجل مشروع نظيف وسهل الفهم!

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

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

نعم — نص درس «إعادة الأساس التفاعلية للسجل» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة Git & GitHub Professional Workflow، انتقل إلى CoddyKit PRO. تتضمن دورة Git & GitHub Professional Workflow 4 دروس في المجموع.

ماذا ستتعلم في «إعادة الأساس التفاعلية للسجل»؟

استخدم إعادة الأساس التفاعلية لإعادة كتابة سجل الالتزامات، ودمج الالتزامات أو إعادة ترتيبها أو تعديل رسائلها قبل دفعها تتمرن على Git & GitHub Professional Workflow مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.

هل أحتاج إلى خبرة سابقة لأبدأ Git & GitHub Professional Workflow؟

لا تُشترط خبرة سابقة. Git & GitHub Professional Workflow على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 2 من أصل 4.

كم من الوقت يستغرق درس «إعادة الأساس التفاعلية للسجل»؟

معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.

هل يمكنني كتابة وتشغيل أكواد في درس Git & GitHub Professional Workflow هذا؟

نعم. كل درس في Git & GitHub Professional Workflow يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.

جميع الدروس في هذه الدورة

  1. حل تعارضات الدمج يدويًا
  2. إعادة الأساس التفاعلية للسجل
  3. انتقاء الالتزامات
  4. استخدام Git Rerere لإعادة استخدام حلول التعارضات
← العودة إلى Git & GitHub Professional Workflow