الأدوات المتقدمة: rebase، stash، cherry-pick والعلامات (tags)
ننتقل الآن إلى الأدوات التي تميّز المستخدم الواثق من Git عن من يعرف الأساسيات فقط. سنشرح rebase كبديل لـ merge — وسنوضح متى يجعل التاريخ أنظف ومتى يجعله كابوسًا. ونضيف stash لحفظ العمل غير المكتمل مؤقتًا، و cherry-pick لنقل الالتزامات بدقة، والعلامات (tags) لوضع علامات على الإصدارات.
- ستتمكن من استخدام git stash للتبديل بين المهام دون فقدان التغييرات.
- ستفهم الفرق بين rebase و merge وستختار بينهما بوعي حسب السياق.
- ستتعلم تحرير تاريخ الالتزامات باستخدام rebase التفاعلي ووضع علامات على إصدارات الإصدارات باستخدام tags.
Simula ng leksyon
المشكلة: كيف نؤجل العمل غير المكتمل
- يقطع إصلاح عاجل لخلل سير عملك
- لا يمكن تثبيت الكود غير المكتمل
- Git stash هو مخزن مؤقت للتغييرات
- يحفظ الملفات المتتبعة وغير المتتبعة
- يعيد دليل العمل إلى حالة نظيفة
تخيل أنك في منتصف تطوير ميزة جديدة، وفجأة يصل إصلاح عاجل لخلل. لا تريد ترك كل شيء في منتصف الطريق، لكنك لا تستطيع تثبيت كود غير مكتمل. لهذا توجد أداة git stash — كأنها رف مؤقت رقمي. إنها مثل حفظ تقدمك مؤقتًا في لعبة: يحفظ وضعك الحالي، ثم يتيح لك الانتقال إلى مهمة أخرى. وعندما تعود، ستجد كل شيء كما تركته، بما في ذلك الملفات غير المتتبعة إذا لم تنسَ استخدام العلم -u. بهذا تتجنب حمل أكثر من مهمة في ذهنك في الوقت نفسه.
نحفظ التغييرات ونراجعها
- git stash save — يحفظ التغييرات في المخزن المؤقت
- git stash list — يعرض قائمة التغييرات المحفوظة
- يُمنح كل stash معرّفًا فريدًا
- stash@{0} — آخر تغيير محفوظ
- يحفظ المخزن حالة دليل العمل
لنتعلم استخدام git stash عمليًا. الأمر git stash save يحفظ كل التغييرات في دليل العمل والملفات المفهرسة، ثم يعيدك إلى حالة نظيفة. لن تضيع أعمالك؛ فهي تنتقل إلى مخزن خاص. للتأكد من حفظها، نفّذ git stash list. سترى قائمة بالمهام المؤجلة، ولكل منها معرّف فريد مثل stash@{0}. هذا مفيد جدًا عندما تحتاج إلى الانتقال سريعًا بين المهام دون فقدان التقدم.
#!/bin/bash
# نحفظ التغييرات الحالية
git stash save "قيد العمل: نموذج تسجيل دخول جديد"
# نتحقق من قائمة التغييرات المحفوظة
git stash list
# نعرض محتوى آخر stash
git stash show -p
نستعيد التغييرات المؤجلة
- git stash pop — يطبق آخر stash ويحذفه
- git stash apply — يطبقه دون حذفه
- قد تظهر تعارضات عند تغير الكود
- تُحل التعارضات يدويًا
- stash@{n} — للوصول إلى حفظ محدد
حين يحين وقت العودة إلى العمل المؤجل، لديك خياران. الأمر git stash pop يطبق آخر التغييرات المحفوظة ثم يحذفها من قائمة stash. أما إذا أردت مراجعة التغييرات أو تطبيقها أكثر من مرة، فاستخدم git stash apply؛ فالتغييرات ستبقى في المخزن. تذكر أن التغييرات في الكود بعد حفظ stash قد تسبب تعارضات. في هذه الحالة سيبلغك Git بالمشكلة، وعليك حل التعارضات يدويًا.
#!/bin/bash
# نستعيد آخر التغييرات المؤجلة
git stash pop
# أو نطبقها دون حذف
git stash apply
# نطبق stash محددًا حسب الفهرس
git stash apply stash@{1}
Buong leksyon ay para sa subscription
25 pang slide sa buong bersyon.
Mabubuksan ang video, lahat ng slide, tala, pagsusulit, AI tutor, at interview pagkatapos mag-sign in at mag-subscribe.
Mag-sign in o magparehistro Mag-subscribeNilalaman ng leksyon
- المشكلة: كيف نؤجل العمل غير المكتمل
- نحفظ التغييرات ونراجعها
- نستعيد التغييرات المؤجلة
- متى قد يضرّك stash
- كيف يعمل دمج الفروع
- Rebase: نعيد كتابة سجل commits
- متى نستخدم كل أداة: سيناريوهات عملية
- مخاطر rebase: ما الذي قد يحدث؟
- ما rebase ولماذا نحتاج إليه؟
- تنفيذ rebase: شرح خطوة بخطوة
- حل التعارضات أثناء rebase
- إعادة الأساس التفاعلية: محرّر سجل التغييرات الخاص بك
- الأوامر الأساسية لإعادة الأساس التفاعلية
- تطبيق عملي: نجعل السجل مثاليًا
- تنبيه: تغيير السجل المنشور
- لماذا لا ينبغي إجراء rebase للفروع المشتركة
- كيف تتعافى من rebase غير ناجح
- تصحيح السجل بأمان
- لماذا نحتاج cherry-pick في Git؟
- كيف تستخدم git cherry-pick
- متى تختار: cherry-pick أم merge أم rebase؟
- وسوم Git: علامات للتزامات مهمة
- إنشاء وسوم موصوفة وخفيفة
- نشر الوسوم في المستودع البعيد
- سيناريو: إصلاح عاجل أثناء التطوير
- دمج التغييرات عبر rebase وcherry-pick
- أخطاء شائعة وكيف تتجنبها
- الخلاصة: مجموعة أدوات مطوّر Git المتمكّن
Mga artikulo tungkol sa araling ito
- git rebase: paano ito gumagana, interactive mode, at squash ng commit
- Mga command ng Git: cheat sheet na may mga halimbawa para sa araw-araw
- Git merge vs rebase: alin ang piliin para sa team ninyo
- git stash: paano pansamantalang itabi ang mga pagbabago at ibalik ang mga ito
- Mga tanong tungkol sa Git sa job interview: 25 tanong na may sagot
Lahat ng leksyon ng kurso
- مقدمة: Git من الصفر إلى مُطوّر محترف
- لماذا نحتاج إلى Git على الإطلاق — ولماذا لا يُقدّم عليك العمل دونه
- تثبيت وإعداد Git لأول استخدام
- المستودع الأول: init وadd وcommit وسحر الفهرس
- قراءة سجل المشروع: أوامر log و diff و show والتنقل في السجل
- الفروع: الواقع الموازي لرمزك البرمجي
- إلغاء الأخطاء: الأوامر restore، reset، revert — الاستخدام الصحيح والخطير
- GitHub والمستودعات البعيدة: كودك في السحابة
- العمل الجماعي: النسخ المتفرعة، الفروع المميزة وطلبات السحب
- نزاعات الدمج: لا داعي للذعر — افهمها وحُلّها
- سير عمل Git في الفرق الحقيقية: أي سير عمل تختار
- الأدوات المتقدمة: rebase، stash، cherry-pick والعلامات (tags)
- المشروع النهائي: محاكاة التطوير الجماعي الفعلي